{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Vector Representations of Words"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# -*- coding: utf-8 -*-\n",
    "    \n",
    "# Copyright 2015 The TensorFlow Authors. All Rights Reserved.\n",
    "#\n",
    "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
    "# you may not use this file except in compliance with the License.\n",
    "# You may obtain a copy of the License at\n",
    "#\n",
    "#     http://www.apache.org/licenses/LICENSE-2.0\n",
    "#\n",
    "# Unless required by applicable law or agreed to in writing, software\n",
    "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
    "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
    "# See the License for the specific language governing permissions and\n",
    "# limitations under the License.\n",
    "# ==============================================================================\n",
    "\n",
    "from __future__ import absolute_import\n",
    "from __future__ import division\n",
    "from __future__ import print_function\n",
    "\n",
    "import collections\n",
    "import math\n",
    "import os\n",
    "import random\n",
    "import zipfile\n",
    "\n",
    "import numpy as np\n",
    "from six.moves import urllib\n",
    "from six.moves import xrange  # pylint: disable=redefined-builtin\n",
    "import tensorflow as tf\n",
    "import codecs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Data size 2459164\n"
     ]
    }
   ],
   "source": [
    "f = codecs.open('thai_text','r','utf-8');\n",
    "words = tf.compat.as_str(f.read()).split()\n",
    "print('Data size', len(words))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "words =  ['ออก', 'บล', 'จ.', 'มากสุด', 'เงิน', 'ออก', 'บลจ.', 'มาก', 'สุด', 'ปม', 'ผิด', 'นัดหนี้', 'บีอีพ่นพิษมอนิ่งสตาร์', 'เผย', 'ไตรมาส', 'แรก', 'นี้', 'บลจ.', 'เงิน', 'ไหล', 'ออก', 'มาก', 'สุด', 'หลัง', 'เกิด', 'ภาวะ', 'ผิด', 'นัด', 'ชำระ', 'หนี้', 'ตรา', 'สาร', 'ตั้งแต่', 'ปลาย', 'ปี', 'ก่อน', 'และ', 'นัก', 'ลง', 'ทุน', 'ชะลอ', 'ลง', 'ทุน', 'พบ', 'เงิน', 'ไหล', 'เข้า', 'กอง', 'ทุน', 'รวม', 'สุทธิเพียง', ',', 'ล้าน', 'บาท', 'ลด', 'ลง', 'นายกิตติคุณ', 'ธนรัตนพัฒนกิจ', 'นัก', 'วิเคราะห์', 'กอง', 'ทุน', 'บริษัท', 'มอร์นิ่งสตาร์', 'รีเสิร์ซ', 'ประเทศไทย', 'กล่าว', 'ว่า', 'จาก', 'ปัญหา', 'การ', 'ผิด', 'นัด', 'ชำระ', 'หนี้', 'ของ', 'ตรา', 'สาร', 'หนี้', 'ประเภท', 'หรือ', 'ตรา', 'สาร', 'หนี้', 'ระยะ', 'สั้น', 'ที่', 'เสี่ยง', 'สูง', 'ที่', 'ยังคง', 'มี', 'อยู่', 'ส่ง', 'ผล', 'ต่อ', 'ความ', 'เชื่อมั่น', 'ของ', 'ผู้', 'ลง', 'ทุน', 'จึง', 'เป็น', 'ผล', 'ให้', 'ผู้', 'ลง', 'ทุน', 'ตัดสินใจ', 'ไม่', 'ลง', 'ทุน', 'ต่อ', 'ใน', 'กลุ่ม', 'ดัง', 'กล่าว', 'และ', 'ดู', 'เหมือน', 'ยัง', 'ไม่', 'จบ', 'สิ้นดี', 'นอก', 'จาก', 'นี้', 'ยัง', 'ส่ง', 'ผล', 'กระทบ', 'ไป', 'ถึง', 'หลาย', 'บริษัทหลักทรัพย์จัดการกองทุน', 'บลจ.', 'ที่', 'เน้น', 'การ', 'ออก', 'กอง', 'ทุน', 'ดัง', 'กล่าว', 'เป็น', 'พิเศษ', 'ได้', 'รับ', 'ผล', 'กระทบ', 'อย่าง', 'มาก', 'โดย', 'ที่', 'บาง', 'บลจ.', 'ยอด', 'เงิน', 'ภาย', 'ใต้', 'การ', 'บริหาร', 'ลด', 'ลง', 'ไป', 'กว่า', 'โดย', 'ไตรมาส', 'แรก', 'ปี', 'นี้', 'พบ', 'ว่า', 'บล', 'จ.', 'ที่', 'มี', 'เงิน', 'ไหล', 'ออก', 'มาก', 'ที่สุด', 'อันดับ', 'แรก', 'บล', 'จ.', 'โซลาลิส', ',', 'ล้าน', 'บาท', 'รอง', 'ลง', 'มา', 'บล', 'จ.', 'แลนด์แอนด์เฮ้าส์', ',', 'ล้าน', 'บาท', 'บล', 'จ.', 'กสิกรไทย', ',', 'ล้าน', 'บาท', 'บล', 'จ.', 'ซีไอเอ็มบีพรินซิเพิล', ',', 'ล้าน', 'บาท', 'และ', 'บลจ.ยูโอบี', ',', 'ล้าน', 'บาท', 'สำหรับ', 'เงิน', 'ไหล', 'ออก', 'ส่วน', 'ใหญ่', 'มา', 'จาก', 'กรณี', 'ตั๋ว', 'บีอี', 'ใน', 'ประเทศ', 'ที่', 'มี', 'ปัญหา', 'บลจ.', 'ที่', 'ได้', 'รับ', 'ผล', 'กระทบ', 'เริ่ม', 'ทยอย', 'ปิด', 'กอง', 'ทุน', 'เมื่อ', 'ครบ', 'กำหนด', 'โดย', 'เฉพาะ', 'บล', 'จ.', 'ที่', 'ใช้', 'เป็น', 'กอง', 'ทุน', 'หลัก', 'ใน', 'การ', 'ดำเนิน', 'ธุรกิจ', 'จะ', 'ทำ', 'ให้', 'มูลค่า', 'สินทรัพย์', 'ลด', 'รวดเร็ว', 'และ', 'ที่', 'สำคัญ', 'นัก', 'ลง', 'ทุน', 'เริ่ม', 'กังวล', 'ความ', 'เสี่ยง', 'ระวัง', 'การ', 'ลง', 'ทุน', 'ตรา', 'สาร', 'มากขึ้น', 'ทำ', 'ให้', 'ชะลอ', 'การ', 'ลง', 'ทุน', 'และ', 'ยัง', 'ย้าย', 'เงิน', 'ลง', 'ทุน', 'ไป', 'ยัง', 'สินทรัพย์', 'ประเภท', 'อื่น', 'ที่', 'มี', 'ความ', 'ผันผวน', 'ต่ำ', 'กว่า', 'ดัง', 'นั้น', 'ถ้า', 'บล', 'จ.หาสินทรัพย์', 'อื่น', 'มา', 'ทดแทน', 'ไม่', 'ได้', 'จึง', 'ทำ', 'ให้', 'เกิด', 'ภาวะ', 'เงิน', 'ไหล', 'ออก', 'อย่าง', 'ไร', 'ก็ตาม', 'คาด', 'ว่า', 'สถานการณ์', 'เงิน', 'ไหล', 'ออก', 'จะ', 'เป็น', 'ช่วง', 'สั้น', 'ใน', 'ช่วง', 'รอย', 'ต่อ', 'เท่า', 'นั้น', 'เนื่อง', 'จาก', 'สภาพ', 'ตลาด', 'กอง', 'ทุน', 'รวม', 'ต้อง', 'ออก', 'ผลิตภัณฑ์', 'ที่', 'สนับสนุน', 'การ', 'ลง', 'ทุน', 'ระยะ', 'ยาว', 'และ', 'จะ', 'ช่วย', 'ให้', 'บล', 'จ.', 'นำ', 'เงิน', 'ไป', 'ลง', 'ทุน', 'บริหาร', 'ระยะ', 'ยาว', 'ได้', 'ดี', 'ขึ้น', 'ส่วน', 'บล', 'จ.', 'ที่', 'มี', 'เงิน', 'ไหล', 'เข้า', 'มาก', 'ที่สุด', 'ใน', 'ช่วง', 'ไตรมาส', 'แรก', 'ปี', 'นี้', 'สังเกต', 'ได้', 'ว่า', 'ทั้งหมด', 'เป็น', 'กลุ่ม', 'กอง', 'ทุน', 'ที่', 'มี', 'ความ', 'เสี่ยง', 'ต่ำ', 'ถึง', 'ปานกลาง', 'ทั้งสิ้น', 'ซึ่ง', 'สะท้อน', 'ให้', 'เห็น', 'ว่า', 'ผู้', 'ลง', 'ทุน', 'ยังคง', 'มี', 'ความ', 'กังวล', 'ต่อ', 'อยู่', 'โดย', 'บล', 'จ.', 'ที่', 'มี', 'เงิน', 'ไหล', 'เข้า', 'มาก', 'สุด', 'อันดับ', 'บล', 'จ.', 'ทหารไทย', ',', 'ล้าน', 'บาท', 'รอง', 'ลง', 'มา', 'บล', 'จ.กรุงไทย', ',', 'ล้าน', 'บาท', 'บล', 'จ.', 'ธนชาต', ',', 'ล้าน', 'บาท', 'บล', 'จ.', 'กรุงศรี', ',', 'ล้าน', 'บาท', 'และ', 'บล', 'จ.', 'บัวหลวง', ',', 'ล้าน', 'บาท', 'นายกิตติคุณ', 'กล่าว', 'ว่า', 'ไตรมาส', 'แรก', 'มี', 'เงิน', 'ไหล', 'เข้า', 'กองทุนรวมสุทธิเพียง', ',', 'ล้าน', 'บาท', 'ลด', 'ลง', 'จาก', 'ไตรมาสเดียว', 'กัน', 'ปี', 'ก่อน', 'กว่า', 'แต่', 'ภาพ', 'รวม', 'ของ', 'อุตสาหกรรม', 'ก็', 'ยัง', 'โต', 'อยู่', 'ที่', 'นับ', 'จาก', 'สิ้น', 'ปี', 'มูลค่า', 'ทรัพย์สิน', 'สุทธิ', 'อยู่', 'ที่', 'ล้าน', 'ล้าน', 'บาท', 'ประเภท', 'กอง', 'ทุน', 'ที่', 'ได้', 'รับ', 'ความ', 'นิยม', 'คือ', 'กองทุน', 'และ', 'เป็น', 'ผล', 'มา', 'จาก', 'ปัญหา', 'ผิด', 'นัด', 'ชำระ', 'หนี้', 'ของ', 'ตรา', 'สาร', 'หนี้', 'ประเภท', 'ที่', 'ยังคง', 'มี', 'อยู่', 'ไตรมาส', 'แรก', 'ปี', 'นี้', 'กลุ่ม', 'ทั้ง', 'ใน', 'และ', 'ต่าง', 'ประเทศ', 'มี', 'มูลค่า', 'ทรัพย์สิน', 'สุทธิ', 'ลด', 'ลง', 'เหลือ', 'ประมาณ', ',', 'ล้าน', 'บาท', 'จาก', 'ที่', 'เคย', 'สูง', 'สุด', 'ถึง', 'กว่า', ',', 'ล้าน', 'บาท', 'เมื่อ', 'กลาง', 'ปี', 'ที่', 'ผ่าน', 'มา', 'ใจสั่นรัว', 'อีดงอุค', 'กลับ', 'มา', 'มี', 'ทติ้ง', 'ใน', 'รอบ', 'ปี', 'ดีใจ', 'จน', 'ออก', 'นอก', 'หน้า', 'กัน', 'เลย', 'ทีเดียว', 'เมื่อ', 'ยม', 'ทูต', 'ของ', 'ฉันเตรียมแลน', 'ดิ้ง', 'ลง', 'รันเวย์', 'ใน', 'บ้าน', 'เรา', 'เพื่อ', 'มา', 'จัด', 'งาน', 'วัน', 'เสาร์', 'ที่', 'พฤษภาคม', 'นี้', 'ผม', 'เคย', 'ไป', 'ทั้ง', 'ทำ', 'งาน', 'และ', 'ไป', 'เที่ยว', 'ที่', 'ไทย', 'นะ', 'ครับ', 'ถือ', 'ว่า', 'เป็น', 'ประเทศ', 'ที่', 'ไป', 'บ่อย', 'พอสมควร', 'นี่', 'คือ', 'คำ', 'พูด', 'ส่วน', 'หนึ่ง', 'ของ', 'อีดงอุค', 'ที่', 'พูด', 'ถึง', 'ประเทศไทย', 'และ', 'แฟน', 'คลับ', 'ของ', 'เขา', 'หนุ่ม', 'ใหญ่', 'ใน', 'วัย', 'ที่', 'เข้า', 'ใกล้', 'หลักสี่', 'แล้ว', 'แต่', 'กระแส', 'ความ', 'แรง', 'ความ', 'ฮอต', 'ของ', 'หนุ่ม', 'คน', 'นี้', 'ยังคง', 'แรง', 'อย่าง', 'ต่อเนื่อง', 'จาก', 'ผล', 'งาน', 'ล่าสุด', 'กับ', 'บทบาท', 'กริม', 'รีปเปอร์', 'หรือ', 'เรียก', 'สั้น', 'ๆ', 'ว่า', '...ยมทูต', 'นั้น', 'เอง', 'แถม', 'ใน', 'เรื่อง', 'ยัง', 'ถูก', 'ให้', 'จิ้น', 'กับ', 'กงยู', 'นัก', 'แสดง', 'นำ', 'ใน', 'เรื่อง', 'นี้', 'ด้วย', 'นะคะ', 'เมื่อ', 'อีดงอุค', 'ประกาศ', 'เปิด', 'เอเชีย', 'ทัวร์', 'แฟน', 'มี', 'ทติ้ง', 'ก็', 'ทำ', 'ให้', 'มี', 'กระแส', 'ตอบรับ', 'เป็น', 'อย่าง', 'ดี', 'รวม', 'ถึง', 'ใน', 'บ้าน', 'เรา', 'ด้วย', 'นะ', 'จ๊ะ', 'แถม', 'ยม', 'ทูต', 'หนุ่ม', 'คน', 'นี้', 'ยัง', 'ส่ง', 'คลิป', 'มา', 'อ้อน', 'แฟน', 'คลับ', 'กัน', 'ด้วย', 'วัน', 'งาน', 'มา', 'ถึง', 'พูด', 'เลย', 'ว่า', 'มี', 'อะไร', 'เซอร์ไพรส์', 'อีก', 'มากมาย', 'รวม', 'ไป', 'ถึง', 'การ', 'ใกล้ชิด', 'แบบ', 'สุด', 'ๆ', 'อีก', 'ด้วย', 'โดย', 'เฉพาะ', 'สาว', 'ๆ', 'ที่', 'รอ', 'การ', 'กับ', 'หนุ่ม', 'อีดง', 'อุค', 'ทุก', 'ที่', 'นั่ง', 'ด้วย', 'นะ', 'แต่', 'ก่อน', 'จะ', 'ถึง', 'วัน', 'เสาร์', 'ที่', 'พฤษภาคม', 'นี้', 'เรา', 'ไป', 'ดู', 'คลิป', 'กัน', 'ดี', 'กว่า', 'ห้ามพลาดนะคะใครที่รักท่านยมทูต', 'อีดงอุค', 'อย่า', 'ลืม', 'ว่า', 'เรา', 'มี', 'นัด', 'กัน', 'ใน', 'วัน', 'เสาร์', 'ที่', 'พฤษภาคม', 'นี้', 'ณ', 'บีซีซี', 'ฮอลล์', 'เซ็นทรัล', 'พลาซ่า', 'ลาดพร้าว', 'ชั้น', 'จับจอง', 'ซื้อ', 'บัตร', 'ได้', 'ที่', 'ติดตาม', 'รายละเอียด', 'เพิ่มเติม', 'ได้', 'ที่', 'หรือ', '@', '_', 'และ', '@', '_', 'กลต.จ้างที่ปรึกษานอกรื้อก.ม.', 'กลต.จ้างที่ปรึกษานอก', 'รื้อก.ม.', 'หวังช่วยเอกชนลดต้นทุนคาดสรุปต.ค.นี้ก.ล.ต.', 'เดินหน้าปรับปรุงกฎหมายทั้งหมด', 'จ้างที่ปรึกษาต่างประเทศช่วยประเมิน', 'หวังลดต้นทุนภาคธุรกิจ', 'คาดเกณฑ์ไอพีโอใหม่เริ่มใช้ไม่เกิน', 'เดือน', 'ด้านบริษัทขนาดกลาง', 'ร้องเกณฑ์ซีจี', 'โค้ดเพิ่มต้นทุนเพียบนายรพี', 'สุจริตกุล', 'เลขาธิการ', 'สำนักงานคณะกรรมการกำกับหลักทรัพย์และตลาดหลักทรัพย์', 'ก.ล.ต.', 'เปิดเผยว่า', 'สำนักงานก.ล.ต.อยู่ระหว่างการจ้างที่ปรึกษากฎหมายจากต่างประเทศ', 'เพื่อทบทวนกฎเกณฑ์และกฎหมายทั้งหมด', 'โดยคาดว่าจะได้ข้อสรุปในเดือนต.ค.นี้ก.ล.ต.ได้ว่าจ้างที่ปรึกษาทางกฎหมายต่างประเทศเพื่อทบทวนกฎหมายที่ใช้อยู่ปัจจุบัน', 'ซึ่งเป็นไปตามนโยบายของภาครัฐและที่ผ่านมาธนาคารแห่งประเทศไทยได้ดำเนินการไปแล้วในฝั่งของก.ล.ต.คาดว่าจะได้ข้อสรุปในเดือนต.ค.นี้ทั้งนี้การดำเนินตามกฎหมายนั้นถือเป็นต้นทุนหนึ่งของการทำธุรกิจเช่นการขออนุญาตทำธุรกรรมต่างๆ', 'หากดูแล้วไม่จำเป็นหรือเป็นอุปสรรคในการทำธุรกิจก.ล.ต.ก็จะปรับปรุงให้มีประสิทธิภาพและช่วยลดต้นทุนให้ภาคเอกชนกรณีการกำหนดการสัดส่วนจัดสรรหุ้นไอพีโอให้กับผู้มีอุปการคุณไม่เกิน', 'คาดว่าจะสามารถรับฟังความคิดเห็นได้ภายในเดือนหน้า', 'และเมื่อได้รับความเห็นชอบของผู้ที่อยู่ในอุตสาหกรรมเชื่อว่าจะสามารถบังคับใช้ได้ภายใน', 'เดือนข้างหน้า', 'สำหรับวัตถุประสงค์ของก.ล.ต.คือต้องการให้มีการกระจายหุ้นถึงมือนักลงทุนรายบุคคลมากขึ้น', 'ส่วนความคืบหน้าของการแก้ไขพ.ร.บ.หลักทรัพย์', 'แก้ไขเพิ่มเติม', 'ฉบับที่', 'นั้น', 'ปัจจุบันได้เสนอไปยังกระทรวงการคลังแล้ว', 'และอยู่ระหว่างการพิจารณานายสมชัย', 'ไทยสงวนวรกุล', 'ประธานกรรมการบริหาร', 'บริษัท', 'เอส', 'เอ็น', 'ซี', 'ฟอร์เมอร์', 'จำกัด', 'มหาชน', 'เปิดเผยว่า', 'สำหรับเกณฑ์หลักการบริหารกิจการที่ดี', 'ที่กำลังจะบังคับใช้นั้นคาดว่าจะเพิ่มต้นทุนสูงขึ้นเนื่องจากบุคลากรที่ตรงตามหลักเกณฑ์ซีจีโค้ดใหม่ทั้ง', 'ข้อต้องมีความรู้และความสามารถมากขึ้นค่าตอบแทนก็ต้องสูงขึ้นด้วย', 'ทั้งนี้คณะกรรมการจะมีการประชุมเพียง', 'ครั้งต่อปี', 'และไม่สามารถจะดำรงตำแหน่งบริหารบริษัทได้ในเวลาเดียวกันนอกจากนี้ซีจีโค้ดฉบับใหม่กำหนดให้คณะกรรมการ', 'ต้องมีบทบาทกำหนดนโยบายบริษัทจดทะเบียน', 'ซึ่งมองว่าเป็นความเสี่ยง', 'เพราะคณะกรรมการอิสระที่เชิญมาดำรงตำแหน่งนั้น', 'ส่วนใหญ่จะไม่รู้จักวัฒนธรรมของบริษัทหากมาเป็นผู้กำหนดทิศทางอาจก่อให้เกิดปัญหาได้', 'คืบ', 'หน้า', 'ศพ', 'พระ', 'หาย', 'คาด', 'ทำ', 'เป็น', 'ขบวนการ', 'คืบหน้า', 'ศพ', 'หลวงพ่อมหายนต์', 'หาย', 'ปริศนา', 'คาด', 'ทำ', 'เป็น', 'ขบวนการ', 'ไม่', 'ต่ำ', 'กว่า', 'คน', 'จาก', 'กรณี', 'ความ', 'โกลาหล', 'ที่', 'เกิด', 'ขึ้น', 'ยัง', 'วัดศิริมงคล', 'บ้านหนองหญ้าปล้อง', 'อ.พังโคน', 'จ.สกลนคร', 'ซึ่ง', 'กำลัง', 'จะ', 'มี', 'พิธี', 'พระราชทาน', 'เพลิง', 'ศพ', 'พระครูโสภณธรรมาภิวัฒน์', 'หรือ', 'หลวงพ่อมหายนต์', 'อดีต', 'ที่', 'ปรึกษา', 'เจ้า', 'คณะ', 'อำเภอพังโคน', 'อดีต', 'เจ้า', 'อาวาส', 'วัดศิริมงคล', 'ที่', 'มรณภาพ', 'ด้วย', 'โรค', 'ชรา', 'เมื่อ', 'วัน', 'ที่', 'ม.ค.', 'หลัง', 'จาก', 'ตั้ง', 'ศพ', 'บำเพ็ญ', 'กุศล', 'เรื่อย', 'มา', 'โดย', 'ใน', 'เวลา', 'น.', 'วัน', 'ที่', 'เม.ย.', 'จะ', 'มี', 'พิธี', 'ขอ', 'ขมา', 'สรีระสังขาร', 'และ', 'เคลื่อน', 'ขึ้น', 'สู่', 'เมรุ', 'ชั่วคราว', 'แต่', 'ปรากฏ', 'ว่า', 'เมื่อ', 'เปิด', 'โลง', 'เย็น', 'ที่', 'บรรจุ', 'ศพ', 'ของ', 'พระครูโสภณธรรมาภิวัฒน์', 'กลับ', 'พบ', 'แต่', 'เบาะ', 'นอน', 'และ', 'จีวร', 'เปล่า', 'ล่าสุด', 'พระปลัด', 'แดน', 'สกล', 'ปภาโส', 'จ้า', 'อาวาส', 'วัดตาลสุม', 'บ.ตาล', 'เลียน', 'ต.ช้างมิ่ง', 'อ.พรรณนานิคม', 'จ.สกลนคร', 'และ', 'เป็น', 'เครือ', 'ญาติ', 'พระครูโสภณธรรมาภิวัฒน์', 'กล่าว', 'ว่า', 'กรณี', 'ศพ', 'พระครูหาย', 'ไป', 'จาก', 'โลง', 'เย็น', 'เชื่อ', 'ว่า', 'ทำ', 'เป็น', 'ขบวนการ', 'มี', 'ผู้', 'ลงมือ', 'ไม่', 'ต่ำ', 'กว่า', 'คน', 'เพราะ', 'การ', 'ย้าย', 'ศพ', 'ออก', 'มา', 'ต้อง', 'เปิด', 'ท้าย', 'โลง', 'ซึ่ง', 'ได้', 'วาง', 'โต๊ะ', 'และ', 'ตู้', 'บริจาค', 'ปิด', 'ไว้', 'ก่อน', 'ที่', 'คน', 'ร้าย', 'จะ', 'เปิด', 'ท้าย', 'โลง', 'ศพ', 'ออก', 'มา', 'และ', 'ร่าง', 'ของ', 'พระครู', 'ที่', 'แช่', 'เย็น', 'ไว้', 'ก็', 'เป็น', 'น้ำ', 'แข็ง', 'จะ', 'มี', 'น้ำหนัก', 'มาก', 'ต้อง', 'ยก', 'หลาย', 'คน', 'กลุ่ม', 'คน', 'ร้าย', 'ยัง', 'วางแผน', 'ด้วย', 'การ', 'นำ', 'หมอน', 'มา', 'วาง', 'เรียงคล้าย', 'กับ', 'มี', 'คน', 'นอน', 'โดย', 'เฉพาะ', 'ช่วง', 'กลาง', 'ท้อง', 'มี', 'การ', 'นำ', 'หมอน', 'วาง', 'ให้', 'นูน', 'ขึ้น', 'ลักษณะ', 'ของ', 'คน', 'มี', 'พุง', 'ตรง', 'กับ', 'รูปร่าง', 'ของ', 'พระครูโสภณ', 'ก่อน', 'จะ', 'ดัน', 'ที่', 'นอน', 'กลับ', 'เข้า', 'ไป', 'แทน', 'เมื่อ', 'ญาติโยม', 'ที่', 'มา', 'ฟัง', 'สวด', 'อภิธรรม', 'และ', 'ทำ', 'บุญ', 'เมื่อ', 'ไป', 'ส่อง', 'ที่', 'กระจก', 'ด้าน', 'ใน', 'โลง', 'ศพ', 'จึง', 'ยัง', 'เห็น', 'คล้าย', 'ร่างหลวง', 'พ่อ', 'มหายนต์', 'นอน', 'สงบ', 'นิ่ง', 'อยู่', 'พระปลัดแดนสกล', 'กล่าววัน', 'อันตราย', 'มาตรการ', 'รัฐ', 'ได้', 'ผล', 'จริง', 'หรือ', 'วัน', 'อันตราย', 'จำนวน', 'ครั้ง', 'เพิ่ม', 'ยอด', 'ตาย', 'ลด', 'มาตรการ', 'รัฐ', 'ได้', 'ผล', '?', 'สิ้นสุด', 'ไป', 'แล้ว', 'สำหรับ', 'มาตรการ', 'ดูแล', 'และ', 'ป้องกัน', 'อุบัติเหตุ', 'ทาง', 'ถนน', 'วัน', 'อันตราย', 'ช่วง', 'เทศกาล', 'สงกรานต์', 'ปี', 'ตั้งแต่', 'วัน', 'ที่', 'เมษายน', 'ตาม', 'แนว', 'คิด', 'ขับ', 'รถ', 'มี', 'น้ำใจ', 'รักษา', 'วินัย', 'จราจร', 'โดย', 'ศูนย์อำนวยการความปลอดภัยทางถนน', 'ศปถ.', 'กรมป้องกันและบรรเทาสาธารณภัย', 'กระทรวงมหาดไทย', 'ทำ', 'หน้าที่', 'องค์กร', 'กลาง', 'ของ', 'ภาค', 'รัฐ', 'สั่งการ', 'ควบคุม', 'และ', 'ขับเคลื่อน', 'แผน', 'ลด', 'ยอด', 'เจ็บ', 'ตาย', 'ช่วง', 'เทศกาล', 'ปี', 'ใหม่', 'ไป', 'ถึง', 'เทศกาล', 'สงกรานต์', 'ทุก', 'ปี', 'จาก', 'การ', 'รวบรวม', 'สถิติ', 'ใน', 'ปี', 'นี้', 'สรุป', 'ออก', 'มา', 'ได้', 'ว่า', 'ตลอด', 'วัน', 'มี', 'อุบัติเหตุ', ',', 'ครั้ง', 'มี', 'ผู้', 'บาดเจ็บ', ',', 'คน', 'และ', 'มี', 'ผู้', 'เสีย', 'ชีวิต', 'ราย', 'เมื่อ', 'เปรียบเทียบ', 'กับ', 'เทศกาล', 'สงกรานต์', 'มี', 'อุบัติเหตุ', ',', 'ครั้ง', 'ผู้', 'บาดเจ็บ', ',', 'คน', 'ผู้', 'เสีย', 'ชีวิต', 'ราย', 'จะ', 'เห็น', 'ได้', 'ว่า', 'ตัว', 'เลข', 'ผู้', 'เสีย', 'ชีวิต', 'ลด', 'ลง', 'ราย', 'ผู้', 'บาดเจ็บ', 'เพิ่ม', 'ขึ้น', 'ราย', 'ขณะ', 'ที่', 'อุบัติเหตุ', 'เพิ่ม', 'ขึ้น', 'ครั้ง', 'เช่น', 'กัน', 'โดย', 'สาเหตุ', 'ที่', 'ทำ', 'ให้', 'เกิด', 'อุบัติเหตุ', 'สูง', 'สุด', 'ยังคง', 'เป็น', 'เมา', 'แล้ว', 'ขับ', 'ร้อย', 'ละ', 'ขับ', 'รถ', 'เร็ว', 'ร้อย', 'ละ', 'ส่วน', 'ยานพาหนะ', 'ที่', 'เกิด', 'อุบัติเหตุ', 'สูง', 'สุด', 'รถ', 'จักรยาน', 'ยนต์', 'มาก', 'ถึง', 'ร้อย', 'ละ', 'และ', 'รถ', 'ปิกอัพ', 'ร้อย', 'ละ', 'ที่', 'สำคัญ', 'พฤติกรรม', 'เสี่ยง', 'ที่', 'ทำ', 'ให้', 'เสีย', 'ชีวิต', 'และ', 'บาดเจ็บ', 'อันดับ', 'แรก', 'ยัง', 'ป็น', 'สาเหตุ', 'เดิม', 'ๆ', 'ไม่', 'สวม', 'หมวก', 'นิรภัย', 'เมา', 'แล้ว', 'ขับ', 'ขับ', 'รถ', 'เร็ว', 'ตัดหน้า', 'กระชั้นชิด', 'และ', 'รถ', 'จักรยาน', 'ยนต์', 'ไม่', 'ปลอด', 'ภัย', 'ส่วน', 'จังหวัด', 'ที่', 'เกิด', 'อุบัติเหตุ', 'สะสม', 'สูง', 'สุด', 'ได้แก่', 'อุดรธานี', 'ครั้ง', 'จังหวัด', 'ที่', 'มี', 'ผู้', 'เสีย', 'ชีวิต', 'สะสม', 'สูง', 'สุด', 'ได้แก่', 'นครราชสีมา', 'ราย', 'และ', 'จังหวัด', 'ที่', 'มี', 'ผู้', 'บาดเจ็บ', 'สะสม', 'สูง', 'สุด', 'ได้แก่', 'อุดรธานี', 'คน', 'ขณะ', 'ที่', 'จังหวัด', 'ที่', 'ไม่', 'มี', 'ผู้', 'เสีย', 'ชีวิต', 'จังหวัด', 'ได้แก่', 'กระบี่', 'นราธิวาส', 'แม่ฮ่องสอน', 'และสมุทรสงคราม', 'จังหวัด', 'ที่', 'ไม่', 'มี', 'ผู้', 'บาดเจ็บ', 'จังหวัด', 'ได้แก่', 'ชัยภูมิ', 'เมื่อ', 'มอง', 'จาก', 'ปัจจัย', 'สำคัญ', 'ช่วย', 'ลด', 'ยอด', 'ผู้', 'เสีย', 'ชีวิต', 'ใน', 'ปี', 'นี้', 'ส่วน', 'หนึ่ง', 'เกิด', 'จาก', 'มาตรการ', 'เข้มงวด', 'การ', 'เรียก', 'ตรวจ', 'ยานพาหนะ', 'ได้', 'มาก', 'ถึง', ',', ',', 'คัน', 'มี', 'ผู้', 'ถูก', 'ดำเนิน', 'คดี', 'รวม', ',', 'ราย', 'อันดับ', 'แรก', 'แบ่ง', 'เป็น', 'ความ', 'ผิด', 'ฐาน', 'ไม่', 'สวม', 'หมวก', 'นิรภัย', 'มาก', 'ที่สุด', ',', 'ราย', 'รอง', 'ลง', 'มา', 'ไม่', 'มี', 'ใบ', 'ขับขี่', ',', 'ราย', 'ขณะ', 'ที่', 'ถนน', 'สาย', 'รอง', 'ซึ่ง', 'เป็น', 'อีก', 'หนึ่ง', 'พื้นที่', 'เสี่ยง', 'มี', 'จัดตั้ง', 'ด่าน', 'ชุมชน', ',', 'ด่าน', 'มี', 'เจ้าหน้าที่', 'ปฏิบัติ', 'งาน', 'กว่า', ',', 'คน', 'ศปถ.', 'เชื่อ', 'ว่า', 'แผนกวดขัน', 'วินัย', 'จราจร', 'อย่าง', 'จริงจัง', 'เป็น', 'ส่วน', 'หนึ่ง', 'ที่', 'บีบ', 'ให้', 'กราฟ', 'ผู้', 'เสีย', 'เสีย', 'ชีวิต', 'ใน', 'ปี', 'นี้', 'ลด', 'ลง', 'สถิติ', 'อุบัติเหตุ', 'ทาง', 'ถนน', 'ใน', 'ช่วง', 'เทศกาล', 'สงกรานต์', 'มี', 'จำนวน', 'ครั้ง', 'ใน', 'การ', 'เกิด', 'อุบัติเหตุ', 'ทาง', 'ถนน', 'เพิ่ม', 'ขึ้น', 'แต่', 'ตัว', 'เลข', 'จำนวน', 'ผู้', 'เสีย', 'ชีวิต', 'ลด', 'ลง', 'กว่า', 'ปี', 'ที่', 'ผ่าน', 'มา', 'ร้อย', 'ละ', 'ซึ่ง', 'จำนวน', 'ครั้ง', 'ที่', 'เพิ่ม', 'ขึ้น', 'ศปถ.', 'วิเคราะห์', 'ว่า', 'เนื่อง', 'จาก', 'มี', 'การ', 'ใช้', 'รถ', 'ใช้', 'ถนน', 'ใน', 'การ', 'เดินทาง', 'เพิ่ม', 'มาก', 'ขึ้น', 'ขณะ', 'ที่', 'จำนวน', 'ผู้', 'เสีย', 'ชีวิต', 'ลด', 'ลง', 'โดย', 'เฉพาะ', 'อัตรา', 'การ', 'เสีย', 'ชีวิต', 'ที่', 'จุด', 'เกิด', 'เหตุ', 'ลด', 'ลง', 'เหลือ', 'ร้อย', 'ละ', 'จาก', 'ปี', 'ที่', 'ผ่าน', 'มา', 'อยู่', 'ที่', 'ร้อย', 'ละ', 'แสดง', 'ให้', 'เห็น', 'ว่า', 'ดัชนี', 'ความ', 'รุนแรง', 'ของ', 'อุบัติเหตุ', 'ลด', 'ลง', 'อีก', 'ทั้ง', 'อุบัติเหตุ', 'จาก', 'รถ', 'กระบะ', 'ยัง', 'ลด', 'ลง', 'เหลือ', 'ร้อย', 'ละ', 'จาก', 'ปี', 'ที่', 'ผ่าน', 'ร้อย', 'ละ', 'น่า', 'จะ', 'มา', 'จาก', 'ปัจจัย', 'สำคัญ', 'จาก', 'ความ', 'ร่วมมือ', 'ของ', 'ประชาชน', 'โดย', 'เฉพาะ', 'การ', 'ใช้', 'อุปกรณ์', 'นิรภัย', 'และ', 'การ', 'ห้าม', 'บรรทุก', 'ผู้', 'โดยสาร', 'ท้าย', 'กระบะ', 'เกิน', 'คน', 'ตาม', 'มาตรการ', 'พิเศษ', 'จาก', 'คสช.', 'ทำ', 'ให้', 'ประชาชน', 'รู้', 'สึก', 'เกรง', 'กลัว', 'ต่อ', 'ความ', 'ผิด', 'ใน', 'มาตรการ', 'เข้มงวด', 'ของ', 'เจ้าหน้าที่', 'รัฐ', 'ที่', 'ออก', 'มา', 'ครั้ง', 'นี้', 'แต่', 'ปัจจัย', 'ทั้งหมด', 'ยังคง', 'พ่ายแพ้', 'ให้', 'กับ', 'พฤติกรรม', 'เมา', 'แล้ว', 'ขับ', 'และ', 'ขับ', 'รถ', 'เร็ว', 'พุ่ง', 'เป้า', 'ไป', 'ที่', 'ความ', 'คะนอง', 'จาก', 'การ', 'ขับขี่', 'รถ', 'จักรยาน', 'ยนต์', 'และ', 'รถ', 'ที่', 'บรรทุก', 'คน', 'โดยสาร', 'ท้าย', 'กระบะ', 'จาก', 'สาเหตุ', 'ที่', 'ทำ', 'ให้', 'เสีย', 'ชีวิต', 'สูง', 'สุด', 'อันดับ', 'แรก', 'ขับ', 'รถ', 'เร็ว', 'ราย', 'เมา', 'แล้ว', 'ขับ', 'ราย', 'และ', 'ทัศนวิสัย', 'ไม่', 'ดี', 'ราย', 'และ', 'สาเหตุ', 'อื่น', 'ๆ', 'ราย', 'รวม', 'ผู้', 'เสีย', 'ชีวิต', 'ราย', 'สำหรับ', 'มาตรการ', 'ลง', 'โทษ', 'ผู้', 'กระทำ', 'ผิด', 'ขับ', 'รถ', 'ขณะ', 'เมา', 'สุรา', 'ใน', 'เบื้อง', 'ต้น', 'ภาค', 'รัฐ', 'จะ', 'ให้', 'ทำ', 'งาน', 'บริการ', 'สังคม', 'ใน', 'สถาน', 'พยาบาล', 'ตั้งแต่', 'ห้อง', 'ฉุกเฉิน', 'หนัก', 'สุด', 'ไป', 'ที่', 'ห้อง', 'ดับ', 'จิต', 'เพื่อ', 'กระตุ้น', 'จิต', 'สำนึก', 'ผู้', 'กระทำ', 'ผิด', 'ให้', 'รับ', 'รู้', 'ถึง', 'ความ', 'สูญ', 'เสีย', 'และ', 'ผล', 'กระทบ', 'ที่', 'เกิด', 'จาก', 'อุบัติเหตุ', 'ทาง', 'ถนน', 'โดย', 'ขณะ', 'นี้', 'มี', 'ผู้', 'ถูก', 'คุม', 'ประพฤติ', 'มา', 'ทำ', 'งาน', 'บริการ', 'สังคม', 'ใน', 'โรง', 'พยาบาล', ',', 'ราย', 'โดย', 'ล่าสุดอ', 'มี', 'ผู้', 'ถูก', 'คุม', 'ประพฤติ', 'มา', 'ทำ', 'งาน', 'บริการ', 'สังคม', 'ที่', 'โรงพยาบาลนพรัตนราชธานี', 'จำนวน', 'ราย', 'โดย', 'เจ้าหน้าที่', 'จะ', 'ให้', 'ทำ', 'ความ', 'สะอาด', 'อ่างล้าง', 'ศพ', 'และ', 'ตู้', 'เย็น', 'เก็บ', 'ศพ', 'แต่', 'ไม่', 'อนุญาต', 'ให้', 'แตะต้อง', 'ศพ', 'ซึ่ง', 'มาตรการ', 'นี้', 'ทำ', 'ให้', 'การ', 'กระทำ', 'ผิด', 'ซ้ำ', 'ลด', 'ลง', 'เหลือ', 'เพียง', 'ร้อย', 'ละ', 'นายกอบชัย', 'บุญอรณะ', 'รอง', 'อธิบดี', 'กรมป้องกันและบรรเทาสาธารณภัย', 'ระบุ', 'ว่า', 'ใน', 'ปี', 'นี้', 'พบ', 'ว่า', 'มี', 'พฤติกรรม', 'เมา', 'แล้ว', 'ขับ', 'เพิ่ม', 'ขึ้น', 'ร้อย', 'ละ', 'จาก', 'ปี', 'ที่', 'แล้ว', 'ร้อย', 'ละ', 'ส่วน', 'พฤติกรรมการ', 'ขับ', 'รถ', 'เร็ว', 'ลด', 'ลง', 'ร้อย', 'ละ', 'จาก', 'ปี', 'ที่', 'แล้ว', 'ร้อน', 'ละ', 'แต่', 'จาก', 'การ', 'วิเคราะห์', 'ตัว', 'เลข', 'ผู้', 'เสีย', 'ชีวิต', 'ใน', 'ปี', 'นี้', 'ลด', 'ลง', 'แต่']\n"
     ]
    }
   ],
   "source": [
    "print('words = ', words[1:2000]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Most common words (+UNK) [['UNK', 132064], ('ที่', 67531), ('การ', 56379), ('ใน', 42697), ('และ', 37581), ('มี', 35661), ('ได้', 33724), ('เป็น', 29314), ('ให้', 28738), ('ว่า', 28327)]\n",
      "Sample data [62, 47, 3019, 1993, 0, 62, 47, 4773, 61, 205] ['เงิน', 'ออก', 'บล', 'จ.', 'UNK', 'เงิน', 'ออก', 'บลจ.', 'มาก', 'สุด']\n"
     ]
    }
   ],
   "source": [
    "# Step 2: Build the dictionary and replace rare words with UNK token.\n",
    "vocabulary_size = 10000\n",
    "\n",
    "def build_dataset(words, vocabulary_size):\n",
    "  count = [['UNK', -1]]\n",
    "  count.extend(collections.Counter(words).most_common(vocabulary_size - 1))\n",
    "  dictionary = dict()\n",
    "  for word, _ in count:\n",
    "    dictionary[word] = len(dictionary)\n",
    "  data = list()\n",
    "  unk_count = 0\n",
    "  for word in words:\n",
    "    if word in dictionary:\n",
    "      index = dictionary[word]\n",
    "    else:\n",
    "      index = 0  # dictionary['UNK']\n",
    "      unk_count += 1\n",
    "    data.append(index)\n",
    "  count[0][1] = unk_count\n",
    "  reverse_dictionary = dict(zip(dictionary.values(), dictionary.keys()))\n",
    "  return data, count, dictionary, reverse_dictionary\n",
    "\n",
    "data, count, dictionary, reverse_dictionary = build_dataset(words, vocabulary_size)\n",
    "del words  # Hint to reduce memory.\n",
    "print('Most common words (+UNK)', count[:10])\n",
    "print('Sample data', data[:10], [reverse_dictionary[i] for i in data[:10]])\n",
    "\n",
    "data_index = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "47 ออก -> 62 เงิน\n",
      "47 ออก -> 3019 บล\n",
      "3019 บล -> 47 ออก\n",
      "3019 บล -> 1993 จ.\n",
      "1993 จ. -> 0 UNK\n",
      "1993 จ. -> 3019 บล\n",
      "0 UNK -> 1993 จ.\n",
      "0 UNK -> 62 เงิน\n"
     ]
    }
   ],
   "source": [
    "# Step 3: Function to generate a training batch for the skip-gram model.\n",
    "def generate_batch(batch_size, num_skips, skip_window):\n",
    "  global data_index\n",
    "  assert batch_size % num_skips == 0\n",
    "  assert num_skips <= 2 * skip_window\n",
    "  batch = np.ndarray(shape=(batch_size), dtype=np.int32)\n",
    "  labels = np.ndarray(shape=(batch_size, 1), dtype=np.int32)\n",
    "  span = 2 * skip_window + 1  # [ skip_window target skip_window ]\n",
    "  buffer = collections.deque(maxlen=span)\n",
    "  for _ in range(span):\n",
    "    buffer.append(data[data_index])\n",
    "    data_index = (data_index + 1) % len(data)\n",
    "  for i in range(batch_size // num_skips):\n",
    "    target = skip_window  # target label at the center of the buffer\n",
    "    targets_to_avoid = [skip_window]\n",
    "    for j in range(num_skips):\n",
    "      while target in targets_to_avoid:\n",
    "        target = random.randint(0, span - 1)\n",
    "      targets_to_avoid.append(target)\n",
    "      batch[i * num_skips + j] = buffer[skip_window]\n",
    "      labels[i * num_skips + j, 0] = buffer[target]\n",
    "    buffer.append(data[data_index])\n",
    "    data_index = (data_index + 1) % len(data)\n",
    "  # Backtrack a little bit to avoid skipping words in the end of a batch\n",
    "  data_index = (data_index + len(data) - span) % len(data)\n",
    "  return batch, labels\n",
    "\n",
    "batch, labels = generate_batch(batch_size=8, num_skips=2, skip_window=1)\n",
    "for i in range(8):\n",
    "  print(batch[i], reverse_dictionary[batch[i]],\n",
    "        '->', labels[i, 0], reverse_dictionary[labels[i, 0]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Note to Self: Try to run previous command again"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "embeddings <tf.Variable 'Variable:0' shape=(10000, 128) dtype=float32_ref>\n",
      "embed Tensor(\"embedding_lookup:0\", shape=(128, 128), dtype=float32, device=/device:CPU:0)\n",
      "nce_weights <tf.Variable 'Variable_1:0' shape=(10000, 128) dtype=float32_ref>\n",
      "nce_biases <tf.Variable 'Variable_2:0' shape=(10000,) dtype=float32_ref>\n"
     ]
    }
   ],
   "source": [
    "# Step 4: Build and train a skip-gram model.\n",
    "\n",
    "batch_size = 128\n",
    "embedding_size = 128  # Dimension of the embedding vector.\n",
    "skip_window = 1       # How many words to consider left and right.\n",
    "num_skips = 2         # How many times to reuse an input to generate a label.\n",
    "\n",
    "# We pick a random validation set to sample nearest neighbors. Here we limit the\n",
    "# validation samples to the words that have a low numeric ID, which by\n",
    "# construction are also the most frequent.\n",
    "valid_size = 16     # Random set of words to evaluate similarity on.\n",
    "valid_window = 100  # Only pick dev samples in the head of the distribution.\n",
    "valid_examples = np.random.choice(valid_window, valid_size, replace=False)\n",
    "num_sampled = 64    # Number of negative examples to sample.\n",
    "\n",
    "graph = tf.Graph()\n",
    "\n",
    "with graph.as_default():\n",
    "\n",
    "  # Input data.\n",
    "  train_inputs = tf.placeholder(tf.int32, shape=[batch_size])\n",
    "  train_labels = tf.placeholder(tf.int32, shape=[batch_size, 1])\n",
    "  valid_dataset = tf.constant(valid_examples, dtype=tf.int32)\n",
    "\n",
    "  # Ops and variables pinned to the CPU because of missing GPU implementation\n",
    "  with tf.device('/cpu:0'):\n",
    "    # Look up embeddings for inputs.\n",
    "    embeddings = tf.Variable(\n",
    "        tf.random_uniform([vocabulary_size, embedding_size], -1.0, 1.0))\n",
    "    embed = tf.nn.embedding_lookup(embeddings, train_inputs)\n",
    "    print('embeddings', embeddings);\n",
    "    print('embed', embed);\n",
    "    \n",
    "    # Construct the variables for the NCE loss\n",
    "    nce_weights = tf.Variable(\n",
    "        tf.truncated_normal([vocabulary_size, embedding_size],\n",
    "                            stddev=1.0 / math.sqrt(embedding_size)))\n",
    "    nce_biases = tf.Variable(tf.zeros([vocabulary_size]))\n",
    "    print('nce_weights', nce_weights);\n",
    "    print('nce_biases', nce_biases);\n",
    "\n",
    "  # Compute the average NCE loss for the batch.\n",
    "  # tf.nce_loss automatically draws a new sample of the negative labels each\n",
    "  # time we evaluate the loss.\n",
    "  loss = tf.reduce_mean(\n",
    "      tf.nn.nce_loss(weights=nce_weights,\n",
    "                     biases=nce_biases,\n",
    "                     labels=train_labels,\n",
    "                     inputs=embed,\n",
    "                     num_sampled=num_sampled,\n",
    "                     num_classes=vocabulary_size))\n",
    "\n",
    "  # Construct the SGD optimizer using a learning rate of 1.0.\n",
    "  optimizer = tf.train.GradientDescentOptimizer(1.0).minimize(loss)\n",
    "\n",
    "  # Compute the cosine similarity between minibatch examples and all embeddings.\n",
    "  norm = tf.sqrt(tf.reduce_sum(tf.square(embeddings), 1, keep_dims=True))\n",
    "  normalized_embeddings = embeddings / norm\n",
    "  valid_embeddings = tf.nn.embedding_lookup(\n",
    "      normalized_embeddings, valid_dataset)\n",
    "  similarity = tf.matmul(\n",
    "      valid_embeddings, normalized_embeddings, transpose_b=True)\n",
    "\n",
    "  # Add variable initializer.\n",
    "  init = tf.global_variables_initializer()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Initialized\n",
      "Average loss at step  0 :  241.805374146\n",
      "Nearest to กล่าว: แสนสิริ, ซอก, ช่วยเหลือ, สุสาน, เลี้ยว, แก่, กระตือรือร้น, นาโช,\n",
      "Nearest to เพราะ: สตม., สกว., สุทธิลักษณ์, กึ่ง, ออม, เฟอร์นิเจอร์, ไบโอดีเซล, ฝึ,\n",
      "Nearest to วัน: ฟิลิป, ออมสิน, นายปาโมกข์, ก่อสร้างงานโยธา, เสือ, เพิ่ม, สัมพันธ์, เกรงใจ,\n",
      "Nearest to ยัง: เจ้าบ้าน, แต้, นปช., สัดส่วน, เหล้า, ดาต้า, สาหร่าย, บก.น.,\n",
      "Nearest to ดี: ประทัด, อุณหภูมิต่ำสุด, รัฐบาล, บีบ, เพียงราย, น่ารัก, ซม., ไกรษร,\n",
      "Nearest to ของ: รั้ว, อดิศักดิ์, อุณหภูมิ, ควบคู่, กระทรวงพลังงาน, สากล, รัชกาลที่, ตปท.,\n",
      "Nearest to พบ: กระทรวงเกษตรและสหกรณ์, หลักสูตรปรับปรุง, ธนาคารแห่งประเทศไทย, สัญจร, นิ่งนอนใจ, อุทยาน, เสียบบัตร, ผนัง,\n",
      "Nearest to ใน: กษา, แพทริค, นายประดิษฐ์, ติก, มูลค่าเพิ่ม, การท่องเที่ยวแห่งประเทศไทย, พักฟื้น, เวิลด์คัพ,\n",
      "Nearest to อยู่: เชิญ, วัดศรีเอี่ยม, อุ่นเครื่อง, พัทลุง, จ.สุโขทัย, แบรนด์ดุสิต, บล.เคทีบี, นางเทเรซา,\n",
      "Nearest to ผ่าน: คอร์รัปชัน, รั่ว, พล.อ.สุรพงษ์, เดอะ, สภ.ท่าบ่อ, พริตตี้, รพ.ขอนแก่น, บริจาค,\n",
      "Nearest to ราคา: นายวิชัย, นายฌอง, กี่, เปลือย, โกล, ตัน, ทางลอด, ฟาก,\n",
      "Nearest to จำนวน: เป็นธรรม, นายสัญญา, เคลาดิโอ, นางอารีย์, แมตช์, ผกก., สนใจ, นายอนุทิน,\n",
      "Nearest to เวลา: ออ, ฟิต, แจม, รุกล้ำ, ครุภัณฑ์, ตึง, จังหวัดสระแก้ว, ดาดฟ้า,\n",
      "Nearest to และ: กล่า, กำเนิด, ยักษ์ใหญ่, สนธิสัญญา, ชินวัตร, โปแลนด์, ยกฟ้อง, หรูหรา,\n",
      "Nearest to งาน: โขง, กธ, ก.พ.อ., คสช., ดึง, เหมือน, แจ๋ว, ปรัง,\n",
      "Nearest to เป็น: พราน, สุนัข, นายสุเทพ, บริษัท, วัตถุประสงค์, แหนม, ติดตั้ง, ไทม์,\n",
      "Average loss at step  2000 :  40.0406138775\n",
      "Average loss at step  4000 :  8.45202221709\n",
      "Average loss at step  6000 :  5.94455533504\n",
      "Average loss at step  8000 :  5.28678612339\n",
      "Average loss at step  10000 :  4.98899323642\n",
      "Nearest to กล่าว: UNK, เลี้ยว, สุสาน, แสนสิริ, พันตำรวจเอก, แต้ว, มัด, ช่วยเหลือ,\n",
      "Nearest to เพราะ: เขา, เฟอร์นิเจอร์, สตม., ตรง, ฝึ, กึ่ง, นางแอ่น, UNK,\n",
      "Nearest to วัน: นายปาโมกข์, ตอน, เสือ, โลกาภิวัตน์, หญ้า, พ.ต.อ.กฤษณะ, สัมพันธ์, ผลักดัน,\n",
      "Nearest to ยัง: พันตำรวจเอก, ปัญหา, แต้, นปช., เหล้า, ว่า, สัดส่วน, หรือ,\n",
      "Nearest to ดี: ประทัด, ช้า, รัฐบาล, บีบ, โบราณวัตถุ, มหาวิทยาลัย, เชเฟอร์, น่ารัก,\n",
      "Nearest to ของ: และ, ใน, หรือไม่, ไต่สวน, UNK, ช่องทางออนไลน์, รั้ว, น้า,\n",
      "Nearest to พบ: หลักสูตรปรับปรุง, ผนัง, งอก, สัญจร, UNK, อุทยาน, กล้า, ของกลาง,\n",
      "Nearest to ใน: ของ, ร้อยละ, พันตำรวจเอก, ลดลง, UNK, แพทริค, มูล, พระเครื่อง,\n",
      "Nearest to อยู่: น้ำลาย, เชิญ, ปรากฎ, พันตำรวจเอก, บอกว่า, พัทลุง, ยุ่งยาก, ผลักดัน,\n",
      "Nearest to ผ่าน: รั่ว, UNK, พระราชกฤษฎีกา, บริจาค, พระเครื่อง, รพ.ขอนแก่น, พล.อ.สุรพงษ์, โปรด,\n",
      "Nearest to ราคา: กี่, นายฌอง, ร้าน, นายวิชัย, ปี, ผบช.ก., ตัน, โกล,\n",
      "Nearest to จำนวน: เป็นธรรม, ครับ, แม่, UNK, เคลาดิโอ, ทั้ง, ฟักทอง, ระดม,\n",
      "Nearest to เวลา: เจ้าพนักงาน, สั้น, ปลอมแปลง, รายการ, ติดตั้ง, พันตำรวจเอก, ตึง, ออ,\n",
      "Nearest to และ: UNK, ของ, ที่, พระเครื่อง, แต่, ร้อยละ, โดย, เพื่อ,\n",
      "Nearest to งาน: เรอัล, ส่อง, พันตำรวจเอก, โขง, แมนฯซิตี, เอสซีจี, คสช., UNK,\n",
      "Nearest to เป็น: มี, นายสุเทพ, UNK, เต็มใจ, สุนัข, เครื่องมือ, พราน, ประเทศอังกฤษ,\n",
      "Average loss at step  12000 :  4.79772710979\n",
      "Average loss at step  14000 :  4.77088794744\n",
      "Average loss at step  16000 :  4.59855799401\n",
      "Average loss at step  18000 :  5.84459443623\n",
      "Average loss at step  20000 :  4.53501345819\n",
      "Nearest to กล่าว: สุสาน, แสนสิริ, เลี้ยว, สภ., นาคา, สันติสุข, แต้ว, พันตำรวจเอก,\n",
      "Nearest to เพราะ: เฟอร์นิเจอร์, ซึ่ง, เขา, สตม., และ, ตรง, ฝึ, พันตำรวจเอก,\n",
      "Nearest to วัน: ฟิลิป, นายปาโมกข์, ตอน, ปลาสิงโต, ริยาด, โลกาภิวัตน์, เสือ, หิน,\n",
      "Nearest to ยัง: ปัญหา, พันตำรวจเอก, กระทรวงดิจิทัลฯ, หรือ, นปช., UNK, จะ, แต้,\n",
      "Nearest to ดี: ช้า, มาก, ประทัด, อุณหภูมิต่ำสุด, บีบ, รัฐบาล, คุณค่า, เชเฟอร์,\n",
      "Nearest to ของ: และ, ใน, ไต่สวน, หรือไม่, มี, ช่องทางออนไลน์, เรือนจำ, ผบช.สตม.,\n",
      "Nearest to พบ: ผนัง, หลักสูตรปรับปรุง, UNK, สัญจร, ผบช.สตม., งอก, ฮั้ว, อุทยาน,\n",
      "Nearest to ใน: ของ, มี, เอ็ม, ทาทา, เป็น, แรงงาน, UNK, เคาะ,\n",
      "Nearest to อยู่: หน้าต่าง, น้ำลาย, บีบ, ปรากฎ, พันตำรวจเอก, บิเซนเต, ดูหมิ่น, ทรัค,\n",
      "Nearest to ผ่าน: บริจาค, รั่ว, พล.อ.สุรพงษ์, โพสต์, พระราชกฤษฎีกา, พระเครื่อง, วี, โปรด,\n",
      "Nearest to ราคา: นายฌอง, UNK, โกล, กี่, ฟาก, ทางลอด, สับสน, ปี,\n",
      "Nearest to จำนวน: เป็นธรรม, ,, นายสัญญา, ครับ, และ, ซัพพลาย, ทั้ง, แม่,\n",
      "Nearest to เวลา: สั้น, เจ้าพนักงาน, ล๊อค, ออ, ปลอมแปลง, รายการ, ตึง, หลักฐาน,\n",
      "Nearest to และ: โดย, ซึ่ง, แต่, ของ, UNK, เพื่อ, ที่, พระเครื่อง,\n",
      "Nearest to งาน: เรอัล, พันตำรวจเอก, เอสซีจี, ต้องการ, กธ, โขง, UNK, คสช.,\n",
      "Nearest to เป็น: มี, UNK, กระตุก, นายสุเทพ, ไร, เดี่ยว, ใน, ไมโล,\n",
      "Average loss at step  22000 :  4.44861977184\n",
      "Average loss at step  24000 :  4.52128985739\n",
      "Average loss at step  26000 :  4.43978072464\n",
      "Average loss at step  28000 :  4.35771442318\n",
      "Average loss at step  30000 :  4.36880126476\n",
      "Nearest to กล่าว: สภ., เลี้ยว, สุสาน, ระบุ, เปิดเผย, สันติสุข, แสนสิริ, นาคา,\n",
      "Nearest to เพราะ: ซึ่ง, เฟอร์นิเจอร์, เขา, แต่, และ, สตม., UNK, พันตำรวจเอก,\n",
      "Nearest to วัน: ฟิลิป, ตอน, นายปาโมกข์, ปลาสิงโต, ริยาด, หิน, หม่า, โลกาภิวัตน์,\n",
      "Nearest to ยัง: จะ, หรือ, ก็, ปัญหา, พันตำรวจเอก, กระทรวงดิจิทัลฯ, UNK, นปช.,\n",
      "Nearest to ดี: มาก, ช้า, ประทัด, คุณค่า, อุณหภูมิต่ำสุด, เร็ว, UNK, รัฐบาล,\n",
      "Nearest to ของ: ใน, และ, คือ, หรือไม่, ไต่สวน, หรือราว, กับ, สำหรับ,\n",
      "Nearest to พบ: ผนัง, หลักสูตรปรับปรุง, งอก, ผบช.สตม., สัญจร, ดอลลาร์ต่อบาร์เรล, อุทยาน, ขจัด,\n",
      "Nearest to ใน: ของ, ทาทา, พันตำรวจเอก, ลดลง, ร้อยละ, UNK, จอห์นสัน, พระเครื่อง,\n",
      "Nearest to อยู่: UNK, น้ำลาย, พันตำรวจเอก, ไว้, บีบ, ปรากฎ, ทรัค, หน้าต่าง,\n",
      "Nearest to ผ่าน: บริจาค, แอ๋ม, วี, โพสต์, โปรด, พระราชกฤษฎีกา, รั่ว, พล.อ.สุรพงษ์,\n",
      "Nearest to ราคา: นายฌอง, สับสน, เปลือย, ร้าน, ฟาก, ท่าอากาศยานสุวรรณภูมิ, ทางลอด, โกล,\n",
      "Nearest to จำนวน: เป็นธรรม, ,, นายสัญญา, UNK, ครับ, ทั้ง, และ, เซ็ง,\n",
      "Nearest to เวลา: สั้น, เจ้าพนักงาน, ออ, แจม, ปลอมแปลง, ล๊อค, หลักฐาน, ตึง,\n",
      "Nearest to และ: ซึ่ง, UNK, โดย, แต่, ที่, เพื่อ, หรือ, ของ,\n",
      "Nearest to งาน: พันตำรวจเอก, เรอัล, เอสซีจี, กธ, ต้องการ, ธุรกิจ, UNK, พล.ต.ต.นันทชาติ,\n",
      "Nearest to เป็น: UNK, มี, ส.ว., นายสุเทพ, กระตุก, ไมโล, กพช., เดี่ยว,\n"
     ]
    }
   ],
   "source": [
    "# Step 5: Begin training.\n",
    "num_steps = 30001\n",
    "\n",
    "with tf.Session(graph=graph) as session:\n",
    "  # We must initialize all variables before we use them.\n",
    "  init.run()\n",
    "  print(\"Initialized\")\n",
    "\n",
    "  average_loss = 0\n",
    "  for step in xrange(num_steps):\n",
    "    batch_inputs, batch_labels = generate_batch(\n",
    "        batch_size, num_skips, skip_window)\n",
    "    \n",
    "#     print('batch_inputs = ', batch_inputs);\n",
    "#     print('batch_labels = ', batch_labels);\n",
    "    \n",
    "    feed_dict = {train_inputs: batch_inputs, train_labels: batch_labels}\n",
    "\n",
    "    # We perform one update step by evaluating the optimizer op (including it\n",
    "    # in the list of returned values for session.run()\n",
    "    _, loss_val = session.run([optimizer, loss], feed_dict=feed_dict)\n",
    "    average_loss += loss_val\n",
    "\n",
    "    if step % 2000 == 0:\n",
    "      if step > 0:\n",
    "        average_loss /= 2000\n",
    "      # The average loss is an estimate of the loss over the last 2000 batches.\n",
    "      print(\"Average loss at step \", step, \": \", average_loss)\n",
    "      average_loss = 0\n",
    "\n",
    "    # Note that this is expensive (~20% slowdown if computed every 500 steps)\n",
    "    if step % 10000 == 0:\n",
    "      sim = similarity.eval()\n",
    "      for i in xrange(valid_size):\n",
    "        valid_word = reverse_dictionary[valid_examples[i]]\n",
    "        top_k = 8  # number of nearest neighbors\n",
    "        nearest = (-sim[i, :]).argsort()[1:top_k + 1]\n",
    "        log_str = \"Nearest to %s:\" % valid_word\n",
    "        for k in xrange(top_k):\n",
    "          close_word = reverse_dictionary[nearest[k]]\n",
    "          log_str = \"%s %s,\" % (log_str, close_word)\n",
    "        print(log_str)\n",
    "  final_embeddings = normalized_embeddings.eval()\n",
    "#   print('sim = ',sim, tf.shape(sim).eval(), tf.rank(sim).eval());\n",
    "#   print('final_embeddings = ',final_embeddings, tf.shape(final_embeddings).eval(), tf.rank(final_embeddings).eval());"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['UNK', 'ที่', 'การ', 'ใน', 'และ', 'มี', 'ได้', 'เป็น', 'ให้', 'ว่า', 'จะ', 'ของ', 'ไม่', 'มา', 'จาก', 'ความ', 'ไป', 'นี้', 'ผู้', 'กับ', 'ทำ', 'โดย', 'ปี', 'คน', 'วัน', ',', 'ตัว', 'ซึ่ง', 'อยู่', 'ก็', 'ขึ้น', 'ลง', 'ต้อง', 'รับ', 'อย่าง', 'งาน', 'ยัง', 'เข้า', 'เพื่อ', 'แต่', 'กัน', 'ต่อ', 'กล่าว', 'หรือ', 'ทาง', 'ส่วน', 'แล้ว', 'ออก', 'ถึง', 'บาท', 'ด้วย', 'นั้น', 'ใช้', 'ตาม', 'เมื่อ', 'ทั้ง', 'เกิด', 'ผล', 'นำ', 'หลัง', 'รถ', 'มาก', 'เงิน', 'กว่า', 'เรื่อง', 'ๆ', 'ดัง', 'อีก', 'ราย', 'ล้าน', 'ผ่าน', 'ดี', 'นัก', 'เวลา', 'จึง', 'พร้อม', 'รวม', 'ประเทศ', 'ร่วม', 'เพิ่ม', 'ส่ง', 'ขณะ', 'เจ้าหน้าที่', 'ทุน', 'ก่อน', 'พบ', 'ช่วง', 'เพราะ', 'ราคา', 'ครั้ง', 'ถูก', 'สามารถ', 'ไทย', 'เรา', 'เสีย', 'ทุก', 'ด้าน', 'จุด', 'สูง', 'จำนวน', 'คือ', 'เหตุ', 'บ้าน', 'ตลาด', 'เดือน', 'คาด', 'กลุ่ม', 'ขอ', 'ลด', 'น้ำ', 'เห็น', 'ปรับ', 'พื้นที่', 'ตน', 'หา', 'บริษัท', 'ใหม่', 'ค่า', 'ระดับ', 'ฯ', 'กำลัง', 'ประชาชน', 'ข้อ', 'ไว้', 'ขาย', 'ภาย', 'ใหญ่', 'คำ', 'อายุ', 'เมือง', 'ทีม', 'ดำเนิน', 'เปิด', 'นายก', 'ภาค', 'สำหรับ', 'หุ้น', 'ต่าง', 'คดี', 'เขา', 'เอง', 'ซื้อ', 'ตำรวจ', 'ประกอบ', 'ชาว', 'หน้า', 'ปัญหา', 'นอก', 'หาก', 'แรก', 'พ.ค.', 'ประมาณ', 'ข่าว', 'ธุรกิจ', 'ไร', 'รอง', 'ตรวจสอบ', 'แห่ง', 'กฎหมาย', 'กลับ', 'สร้าง', 'ช่วย', 'จัด', 'หนึ่ง', 'ผิด', 'ต้น', 'จน', 'เนื่อง', 'หลาย', 'รัฐบาล', 'คิด', 'ทั้งนี้', 'อาจ', 'ผลิต', 'รัฐมนตรี', 'รู้', 'ชีวิต', 'ถือ', 'แจ้ง', 'เช่น', 'คณะ', 'แบบ', 'สหรัฐ', 'กรณี', 'ระหว่าง', 'ปิด', 'โรง', 'บริเวณ', 'ร่าง', 'ตั้ง', 'หาย', 'โครงการ', 'เสนอ', 'สำคัญ', 'กำไร', 'ตั้งแต่', 'ชื่อ', 'น้ำมัน', 'เท่า', 'รอบ', 'โลก', 'ดู', 'สู่', 'สื่อ', 'ชาติ', 'สุด', 'รายงาน', 'ประชุม', 'เรียน', 'ลูก', 'ติด', 'เดินทาง', 'น่า', 'บริการ', 'ทราบ', 'ละ', 'ไตรมาส', 'รัฐธรรมนูญ', 'ข้อมูล', 'สั่ง', 'หน่วย', 'เศรษฐกิจ', 'ระยะ', 'เดียว', 'พัฒนา', 'แสดง', 'ขยาย', 'อื่น', 'อะไร', 'ค้า', 'สอบสวน', 'ยอด', 'พรรค', 'พิจารณา', 'จับ', 'ยนต์', 'ราชการ', 'ผม', 'เปิดเผย', 'ถ้า', 'ที่สุด', 'ก็ตาม', 'ภาพ', 'ระบบ', 'เฉพาะ', 'ต้องการ', 'ฝ่าย', 'ชาย', 'อัตรา', 'ใต้', 'ต่างๆ', 'ตรวจ', 'เลือกตั้ง', 'เริ่ม', 'กรรมการ', 'กลาง', 'เอา', 'ทั้งหมด', 'ตก', 'เด็ก', 'หลัก', 'น.', 'ระบุ', 'ประธาน', 'บน', 'ถาม', 'เครื่อง', 'เติบโต', 'ภัย', 'ประกาศ', 'รักษา', 'เล่น', 'สินค้า', 'บอก', 'บริหาร', 'จริง', 'สิ่ง', 'เคย', 'มอง', 'เพียง', 'สอง', 'ต่ำ', 'บาง', 'โอกาส', 'แนว', 'กำหนด', 'ใคร', 'จำกัด', 'อยาก', 'น้อย', 'หน้าที่', 'ประจำ', 'สัญญา', 'สาว', 'แรง', 'ตอน', 'สาย', 'สี', 'ชุด', 'ประเทศไทย', 'แผน', 'เลย', 'ต่อเนื่อง', 'รัฐ', 'เกี่ยวข้อง', 'ยา', 'ใด', 'ปัจจุบัน', 'ปฏิบัติ', 'เดิม', 'อดีต', 'ลูกค้า', 'เสียง', 'ดูแล', 'รอ', 'จังหวัด', 'พฤษภาคม', 'ล่าสุด', 'ขนาด', 'เที่ยว', 'ก่อ', 'ใช่', 'เกี่ยว', 'เชื่อ', 'ดอลลาร์', 'แม้', 'เกม', 'ยังคง', 'ขับ', 'คง', 'วัย', 'เกิน', 'จับกุม', 'เม.ย.', 'ท่อง', 'กอง', 'ตำแหน่ง', 'มัน', 'งบ', 'เลข', 'เป้าหมาย', 'คู่', 'ทะเบียน', 'นัด', 'ทหาร', 'วาง', 'ชั้น', 'ติดตาม', 'เก็บ', 'ร้าน', 'ร้าย', 'อำนาจ', 'ระเบิด', 'สนับสนุน', 'ตาย', 'ชี้', 'จีน', 'ห้อง', 'แก้ไข', 'ช่วยเหลือ', 'สัปดาห์', 'มูลค่า', 'เลือก', 'ร้อย', 'อันดับ', 'ตลอด', 'ยืนยัน', 'ณ', 'ชน', 'บุคคล', 'คสช.', 'แทน', 'ฉบับ', 'หญิง', 'คัน', 'ควร', 'เหมือน', 'หลักฐาน', 'เบื้อง', 'พัก', 'เผย', 'คืน', 'หมู่', 'ทั่ว', 'พนักงาน', 'ประเด็น', 'ข้าว', 'กระทำ', 'หมาย', 'ร้อง', 'ประตู', 'หัวหน้า', 'กกต.', 'ศพ', 'ตรง', 'ศึกษา', 'ประชามติ', 'หนัก', 'ประโยชน์', 'บาดเจ็บ', 'แค่', 'ลีก', 'เปลี่ยน', 'ฝน', 'นับ', 'เร่ง', 'แก่', 'พวก', 'นโยบาย', 'พูด', 'รุ่น', 'กระทบ', 'ยอม', 'สังคม', 'นาย', 'ศาล', 'เดิน', 'ปริมาณ', 'แนวโน้ม', 'ชอบ', 'แข่งขัน', 'ดิบ', 'สมาชิก', 'น', 'ชนะ', 'มือ', 'ปลอด', 'ง', 'โทษ', 'ไม้', 'ติดต่อ', 'ชัดเจน', 'ไฟฟ้า', 'แก้', 'สอบ', 'ปกติ', 'ข้าง', 'ประสาน', 'คะแนน', 'เพิ่มเติม', 'เหลือ', 'ตอบ', 'หมื่น', 'หวัง', 'รัก', 'สถานการณ์', 'เสพ', 'เรือ', 'อาหาร', 'เหนือ', 'ใกล้', 'สิทธิ', 'กรธ.', 'ใบ', 'เร็ว', 'ดอก', 'สภาพ', 'ปัจจัย', 'รายการ', 'สินเชื่อ', 'ถนน', 'สนช.', 'เหตุการณ์', 'ยก', 'แถลง', 'บิน', 'ยื่น', 'พยายาม', 'การณ์', 'เจ้าของ', 'ฐาน', 'พิเศษ', 'ควบคุม', 'ดัชนี', 'เข้าใจ', 'พา', 'สนใจ', 'สุดท้าย', 'อนาคต', 'หมด', 'แม่', 'ป้องกัน', 'ร', 'ก่อนหน้า', 'ยึด', 'หนุน', 'สงบ', 'นาน', 'อย่า', 'แชมป์', 'ไฟ', 'ยิ่ง', '+', 'มาตรา', 'ตะวัน', 'จัดการ', 'ยิง', 'พัน', 'เรียก', 'ซื้อขาย']\n",
      "[[ -3.28490853e+00   1.79144564e+00]\n",
      " [  1.66047988e+00   8.78857459e+00]\n",
      " [ -3.90100215e+00  -7.73657697e+00]\n",
      " [  3.67122357e+00   6.68924248e+00]\n",
      " [ -1.29244328e+00   5.35929396e+00]\n",
      " [  4.97228815e+00   3.67912125e+00]\n",
      " [ -7.37856407e+00  -7.91637496e+00]\n",
      " [  7.69278854e+00   2.26060699e+00]\n",
      " [ -9.12913033e-01   5.17779902e+00]\n",
      " [ -6.93673392e-01   8.04215021e+00]\n",
      " [ -8.32346392e+00  -7.74005281e+00]\n",
      " [  1.72566101e+00   7.97977866e+00]\n",
      " [ -1.04759583e+01  -5.29367282e+00]\n",
      " [ -4.23511610e+00  -3.30002117e+00]\n",
      " [  1.31992838e+00   4.93881668e+00]\n",
      " [ -1.05871648e+01  -3.03396944e+00]\n",
      " [ -9.27689539e-01  -4.58786492e+00]\n",
      " [ -6.26786529e+00   1.16709993e+01]\n",
      " [ -1.68661488e+01  -4.07950589e+00]\n",
      " [  4.32443037e+00   6.02072102e+00]\n",
      " [  1.75744019e+01  -1.88731079e+00]\n",
      " [ -5.59196696e-01   2.72212063e+00]\n",
      " [ -1.58284126e+01   1.05094650e+01]\n",
      " [ -1.71974181e+01   1.52774903e+00]\n",
      " [ -1.70613034e+01   9.33359948e+00]\n",
      " [ -2.92733052e+00   1.54737544e+01]\n",
      " [ -1.01968954e+01   2.95036907e+00]\n",
      " [ -3.94882765e+00   7.91442057e+00]\n",
      " [ -3.95934255e+00   2.42125879e+00]\n",
      " [ -9.14742648e+00  -3.67855521e+00]\n",
      " [ -2.72780845e+00   9.35040792e+00]\n",
      " [  1.08885886e+01   3.94018873e+00]\n",
      " [ -7.88922264e+00  -9.11034873e+00]\n",
      " [  1.41370028e+01  -1.18909654e+01]\n",
      " [ -3.27839951e+00   5.57870374e+00]\n",
      " [ -2.43683751e-01  -1.17630635e+01]\n",
      " [ -5.91600562e+00  -4.39022410e+00]\n",
      " [  1.21108480e+01  -3.63060605e-01]\n",
      " [ -5.57572068e-01   1.52351448e+00]\n",
      " [ -3.25359026e-01   4.66705335e+00]\n",
      " [  5.02839382e+00   5.89518301e+00]\n",
      " [  1.47338342e+00   1.11329359e+01]\n",
      " [ -7.26037502e+00  -1.86011115e+01]\n",
      " [ -4.61333605e-01   7.12386897e+00]\n",
      " [  5.97705332e+00   7.50960487e+00]\n",
      " [  2.92548443e+00   8.44814875e+00]\n",
      " [ -6.15397992e+00  -6.88613822e+00]\n",
      " [  1.03841520e+01  -2.66654294e+00]\n",
      " [ -2.44390916e+00   1.27286683e+01]\n",
      " [ -1.08087180e+01   1.25849777e+01]\n",
      " [  4.45862485e+00   4.38253782e+00]\n",
      " [ -5.63819807e+00   1.12891572e+01]\n",
      " [  1.15698123e+01  -6.90044786e+00]\n",
      " [  6.42659976e+00   2.23750722e+00]\n",
      " [  2.06470620e+00   1.26934150e+01]\n",
      " [ -6.14871567e-01   1.87224891e+01]\n",
      " [  5.19677860e+00   1.97770841e+00]\n",
      " [ -2.18586125e+01  -6.61866407e+00]\n",
      " [  9.32335541e+00  -2.80133570e+00]\n",
      " [  8.25931613e+00   1.62557524e+01]\n",
      " [  1.45467755e+00  -6.08377308e+00]\n",
      " [ -9.80507125e+00   7.79221907e+00]\n",
      " [ -4.75666319e+00   2.03367406e+01]\n",
      " [ -3.48321381e+00   1.54731527e+01]\n",
      " [ -2.28772128e+01   7.13533481e+00]\n",
      " [ -2.13603490e+01   1.29078257e+01]\n",
      " [  3.61304127e+00   1.75598262e+01]\n",
      " [  1.75576487e+00   1.78124910e+01]\n",
      " [ -6.38721549e+00   2.02260128e+01]\n",
      " [ -2.44482628e+00   1.68159135e+01]\n",
      " [  1.19207489e+01  -2.45778022e-01]\n",
      " [ -8.60247328e+00   6.60880959e+00]\n",
      " [ -2.18954772e+01  -5.90260314e+00]\n",
      " [ -2.46325316e+01   3.01163218e+00]\n",
      " [ -9.61437716e+00  -3.04326288e+00]\n",
      " [ -4.51108728e+00   2.63401102e+00]\n",
      " [ -2.94878916e+00   1.64978836e+01]\n",
      " [  6.56966343e+00  -5.38940604e-01]\n",
      " [  1.34787092e+01   1.79574109e+00]\n",
      " [  7.56350450e+00   5.15063611e+00]\n",
      " [  1.69750382e+01   3.03843919e+00]\n",
      " [ -1.93604488e+01   4.94047524e+00]\n",
      " [  8.55872804e+00  -1.56328196e+01]\n",
      " [ -1.38785007e+01   1.42154489e+01]\n",
      " [ -6.87781939e+00   1.07067914e+00]\n",
      " [ -4.47199012e+00  -1.75484360e+01]\n",
      " [ -1.59782869e+01   1.61239077e+01]\n",
      " [ -5.04344693e+00   2.33209170e+00]\n",
      " [ -2.08767660e+01  -3.03138840e+00]\n",
      " [ -1.98500825e+01   9.25162777e+00]\n",
      " [  6.15195462e+00  -9.29865609e+00]\n",
      " [ -7.38099156e+00  -1.18314454e+01]\n",
      " [  4.63054987e+00  -1.22336830e+01]\n",
      " [ -9.70817047e+00  -9.52964720e+00]\n",
      " [  1.10271639e+01  -7.62261927e+00]\n",
      " [  6.93683543e+00   1.72212886e+01]\n",
      " [  4.69167679e+00   1.14238818e+01]\n",
      " [ -7.47801453e+00   1.62553336e+01]\n",
      " [ -1.12183061e+01   8.25282636e+00]\n",
      " [ -6.12436514e+00   1.61064863e+01]\n",
      " [  4.26533209e+00   1.11125335e+01]\n",
      " [ -1.72925788e+01  -8.06724868e+00]\n",
      " [ -1.86633986e+01   1.27789527e+01]\n",
      " [ -1.49759788e+01   1.55638123e+01]\n",
      " [ -1.58347431e+01   1.18548084e+01]\n",
      " [ -1.82259763e+01  -1.63313413e+01]\n",
      " [ -6.95527436e+00   5.23511443e-01]\n",
      " [  1.27133090e+01  -1.10916966e+01]\n",
      " [  2.08415499e+01  -6.99662287e+00]\n",
      " [ -1.24913289e+01  -1.86116561e+01]\n",
      " [  5.73187647e+00  -2.01322612e+01]\n",
      " [  6.47889007e+00   5.23734312e+00]\n",
      " [  5.14328246e+00  -4.64804427e+00]\n",
      " [ -1.23412114e+01  -9.37762342e+00]\n",
      " [  1.40801669e+01  -1.83894772e+01]\n",
      " [ -1.90773976e+01   1.58695067e+01]\n",
      " [ -9.86394164e+00   1.65874541e+01]\n",
      " [ -1.17863336e+01   1.43409093e+01]\n",
      " [ -1.22250476e+01   1.73161452e+01]\n",
      " [ -1.84990563e+01  -1.07752493e+01]\n",
      " [ -4.34014950e+00  -6.16965232e+00]\n",
      " [ -2.56913752e+00  -9.48128733e+00]\n",
      " [ -2.46920494e+01   7.85572164e+00]\n",
      " [ -2.31925798e+00   1.47793547e+00]\n",
      " [  1.21503914e+01  -3.31086827e+00]\n",
      " [  4.63644298e+00   1.09043886e+01]\n",
      " [ -1.10768142e+01   5.30896120e+00]\n",
      " [ -1.61814157e+01  -4.92468988e+00]\n",
      " [ -1.15445440e+01   2.14376709e+01]\n",
      " [ -3.09411769e+00  -6.08928262e+00]\n",
      " [ -1.48195413e+01   1.85188608e+00]\n",
      " [  1.79861260e+01  -3.98469526e+00]\n",
      " [  1.72759993e+01  -6.02160047e+00]\n",
      " [  7.46311834e-01   7.66067392e-01]\n",
      " [ -2.47241464e+01  -2.40294900e+00]\n",
      " [  2.22576813e+00   5.55041128e+00]\n",
      " [ -6.28664333e+00   9.16667207e+00]\n",
      " [  1.04782831e+01   1.94754149e+01]\n",
      " [  1.49182539e+01  -1.72774713e+01]\n",
      " [ -8.91588230e+00  -1.21288745e+01]\n",
      " [ -1.08440189e+01  -1.18368163e+01]\n",
      " [  1.01936293e+01   5.56779506e+00]\n",
      " [  1.15028356e+01  -1.46453032e+01]\n",
      " [  2.23291540e+01   6.65127705e+00]\n",
      " [ -4.58459946e+00   2.55913900e+00]\n",
      " [ -9.27857155e+00   2.31895606e+01]\n",
      " [ -7.95868049e+00  -2.96473693e+00]\n",
      " [  7.80115482e+00   1.43998502e+01]\n",
      " [ -1.33487007e+01  -4.79179212e+00]\n",
      " [ -3.25458641e-01   2.38196855e+01]\n",
      " [ -2.28758630e+01   1.34485571e+01]\n",
      " [  3.27731012e-01   1.48395262e+01]\n",
      " [ -5.71726251e+00  -2.18251447e+01]\n",
      " [ -1.08889812e+00  -1.27534006e+01]\n",
      " [ -1.18823118e+01   1.11677264e+01]\n",
      " [  1.62038167e+01   1.39527210e+01]\n",
      " [  1.43034050e+01  -7.15678161e+00]\n",
      " [ -7.01644187e+00   2.39692497e+01]\n",
      " [ -1.24409421e+01  -1.87027802e+00]\n",
      " [  1.00552864e+01  -1.27251100e+00]\n",
      " [  9.16992664e+00   3.89181460e+00]\n",
      " [  8.87234783e+00  -6.36957109e-01]\n",
      " [  7.21857457e+00  -2.67992023e+00]\n",
      " [  2.12835473e+00   2.07933074e+01]\n",
      " [  1.71000178e+01  -1.42199715e+01]\n",
      " [  5.16390799e+00   9.38056416e+00]\n",
      " [ -1.14653509e+00   3.71020257e+00]\n",
      " [  7.38255212e+00   1.50792303e+01]\n",
      " [  1.73525121e+00   1.93512818e+01]\n",
      " [ -1.19194990e+01  -1.03816169e+01]\n",
      " [ -3.34170579e+00  -1.96150418e+01]\n",
      " [ -4.05772475e+00   6.99297173e+00]\n",
      " [ -1.05868022e+01  -6.14560059e+00]\n",
      " [  2.32927958e+01   2.29470759e+00]\n",
      " [  6.24751100e+00  -1.76693851e+01]\n",
      " [ -1.45173461e+00  -1.99700363e+01]\n",
      " [ -1.38218179e+01  -2.74904824e+00]\n",
      " [ -2.37508543e+01   5.78562297e-01]\n",
      " [  9.02496719e+00  -1.24338073e+01]\n",
      " [ -1.94649579e+00   7.25988392e+00]\n",
      " [  1.13271252e+01  -1.33440993e+01]\n",
      " [ -5.83882066e+00  -2.77505920e+00]\n",
      " [ -1.88265635e+01  -4.58388497e+00]\n",
      " [ -2.29450042e+01   7.42515805e+00]\n",
      " [  4.86268705e+00   8.82540476e+00]\n",
      " [  1.48737204e+01   3.87708155e+00]\n",
      " [ -1.12608429e+01   4.01413937e+00]\n",
      " [  5.40973462e+00   2.03735088e+01]\n",
      " [  1.89710042e+01   8.27440928e+00]\n",
      " [  1.72519603e+00  -2.15350203e+01]\n",
      " [  3.68510491e+00  -9.55728192e+00]\n",
      " [ -9.39216714e-01  -1.42904450e+01]\n",
      " [  6.31974458e+00  -1.12902894e+01]\n",
      " [  4.13175618e+00   7.66440452e-01]\n",
      " [ -2.14822253e+01  -7.89863200e+00]\n",
      " [ -1.21645378e+00   1.12121216e+01]\n",
      " [ -2.56919040e+01  -3.58226039e+00]\n",
      " [  9.98818080e+00  -5.98306727e+00]\n",
      " [ -5.94382614e-01   1.55988186e+01]\n",
      " [ -9.71375040e+00   1.97445065e+01]\n",
      " [ -1.41978043e+01   6.55802779e+00]\n",
      " [ -1.07120459e+01  -1.50677817e+01]\n",
      " [  1.53176778e+01   6.19500655e-01]\n",
      " [  7.30917813e-02  -1.33581857e+01]\n",
      " [ -3.00283742e+00   2.31429987e+01]\n",
      " [ -1.31378082e+01   1.23887523e+01]\n",
      " [ -6.56836282e+00  -2.09727241e+01]\n",
      " [  1.12269908e+01   8.35117462e+00]\n",
      " [  2.03980465e+00  -1.43055513e+01]\n",
      " [ -2.10513952e+01  -1.00228122e+01]\n",
      " [  1.35867128e+01  -2.23399187e+00]\n",
      " [  1.41577938e+01   3.10663202e+00]\n",
      " [ -1.87313319e+01   4.84225793e+00]\n",
      " [  8.53464593e+00  -1.69949145e+01]\n",
      " [ -6.70580692e+00  -1.17369182e+01]\n",
      " [ -2.93519191e+00   1.90958164e+01]\n",
      " [ -1.59469573e+01   1.41252731e+01]\n",
      " [  4.09254973e+00  -1.71831163e+01]\n",
      " [ -1.70809683e+00  -1.12828203e+01]\n",
      " [  1.31625936e+01  -1.47593866e+01]\n",
      " [ -1.23153242e-01  -8.68032478e+00]\n",
      " [  4.42483344e+00  -7.12047695e+00]\n",
      " [ -1.61200208e+01   1.70164594e+01]\n",
      " [  3.21050635e+00   2.85213865e+00]\n",
      " [  1.58141183e+01  -2.79932256e+00]\n",
      " [  1.15389481e+01   6.61740634e+00]\n",
      " [  1.60743227e+01   1.57358642e+00]\n",
      " [  7.90482911e+00  -4.62029316e+00]\n",
      " [ -1.43544971e+01  -7.91961069e+00]\n",
      " [  2.04018353e+01   7.72824487e+00]\n",
      " [  2.16503794e+01  -9.81696120e-01]\n",
      " [ -1.13258229e+01   5.59697974e-01]\n",
      " [  6.06417193e+00  -1.18053232e+00]\n",
      " [ -2.57198182e+00  -1.63781410e+01]\n",
      " [  8.59027840e+00  -9.27445244e+00]\n",
      " [  9.85863540e+00   1.28700492e+01]\n",
      " [  6.75222867e+00  -4.05017097e+00]\n",
      " [ -1.23694767e+01  -8.41824388e+00]\n",
      " [ -7.74759595e+00  -1.92223590e+01]\n",
      " [ -1.54832782e+01  -1.29574335e+01]\n",
      " [ -4.71800240e+00   1.14238268e+01]\n",
      " [ -2.87920373e-01   8.21422033e+00]\n",
      " [ -1.52009992e+01  -1.09897470e+01]\n",
      " [ -2.18510369e+00  -9.71514400e+00]\n",
      " [  1.29886424e+01  -6.40723463e+00]\n",
      " [  1.99398178e+00  -1.16866200e+01]\n",
      " [ -2.39567263e+01   5.40183934e+00]\n",
      " [  1.03760925e+01   1.95289055e+01]\n",
      " [ -2.04959914e+01   2.60796618e+00]\n",
      " [  7.62612472e+00   1.10696805e+01]\n",
      " [  1.65406039e+01  -1.42160313e+01]\n",
      " [  2.22397120e+01   1.89012448e+00]\n",
      " [ -9.46068908e+00   1.19474678e+01]\n",
      " [ -7.90872025e+00  -1.93786064e+00]\n",
      " [  1.00398310e+01  -1.92126796e+01]\n",
      " [  1.88472670e+00   1.57129492e+01]\n",
      " [ -6.88611639e+00  -2.61993752e+00]\n",
      " [ -9.17233192e+00   1.50209698e+00]\n",
      " [ -1.40411061e+01   7.73306228e+00]\n",
      " [ -6.43127388e+00   3.56059806e+00]\n",
      " [ -4.68701708e+00   1.00425211e+01]\n",
      " [ -8.24786541e+00  -1.45283635e+01]\n",
      " [ -7.43096076e+00  -1.78166326e+01]\n",
      " [ -1.01724574e+00  -7.51407879e-01]\n",
      " [  1.22158270e+01   1.13944624e+01]\n",
      " [ -5.48268375e+00  -1.84251450e+01]\n",
      " [ -1.85398083e+01  -1.64641811e+00]\n",
      " [  1.10214901e+01   2.67342914e+00]\n",
      " [ -8.68444926e+00  -1.21335520e+01]\n",
      " [  1.71084046e+01   4.20091952e+00]\n",
      " [  9.39097356e+00  -1.00349751e+01]\n",
      " [  7.50917925e+00  -2.28247149e-01]\n",
      " [ -1.87868277e+01  -1.51856484e+00]\n",
      " [ -1.87000476e+00  -2.02253445e+01]\n",
      " [  2.52037004e+01   2.75985461e-01]\n",
      " [ -6.97244480e+00   4.91583448e+00]\n",
      " [ -2.11436521e+01  -7.87338154e-01]\n",
      " [ -1.18043784e+01  -5.51408153e+00]\n",
      " [ -2.75322941e+00  -2.18802521e+01]\n",
      " [  8.31401627e-01   1.01242119e+01]\n",
      " [  9.93780115e-01   1.77103469e+01]\n",
      " [ -1.13764740e+01   7.81311146e+00]\n",
      " [  1.06348012e+01   1.54504406e+01]\n",
      " [ -8.33995976e+00  -5.63065346e+00]\n",
      " [  5.05072285e+00  -5.65615871e+00]\n",
      " [  1.49505938e+00  -2.12985560e+01]\n",
      " [ -1.37635411e+01  -1.50917080e+01]\n",
      " [ -2.06501007e+01  -1.51534565e+01]\n",
      " [ -1.04268324e+01  -8.63575504e+00]\n",
      " [ -1.20453170e+01   9.79376221e+00]\n",
      " [ -1.38871654e+01  -8.84732637e+00]\n",
      " [ -7.55602344e+00   2.02322467e+01]\n",
      " [ -2.00503536e+01   1.54390928e+01]\n",
      " [  8.50382520e+00   2.00492017e+01]\n",
      " [  6.15412089e+00  -1.32330723e+01]\n",
      " [ -1.72804359e+01   9.16351657e+00]\n",
      " [ -1.96807845e+01   2.22948521e+00]\n",
      " [ -2.54310901e+01  -3.11771250e+00]\n",
      " [  9.48563892e+00   7.59155119e+00]\n",
      " [ -5.12290976e+00  -1.32529267e+01]\n",
      " [ -3.27239816e+00  -7.68870428e+00]\n",
      " [ -1.20393594e+01  -7.48777616e+00]\n",
      " [ -1.14390589e+01   9.91179622e+00]\n",
      " [  1.55842993e+01  -1.48732992e+01]\n",
      " [  3.86531418e+00  -1.66297719e+01]\n",
      " [ -5.85504833e+00   1.44264255e+01]\n",
      " [  8.08760488e+00  -5.08364223e+00]\n",
      " [ -2.16528137e+01   4.58860829e+00]\n",
      " [  1.87610623e+01  -2.42294617e+00]\n",
      " [ -1.15164439e+01   1.31620982e+01]\n",
      " [  1.69946616e+01   1.39115407e+01]\n",
      " [ -1.74319062e+01   2.83476886e+00]\n",
      " [ -8.45292896e+00  -1.02380609e+01]\n",
      " [  1.18861875e+01   8.92959988e+00]\n",
      " [  2.42871845e+00  -1.48885876e+01]\n",
      " [ -3.50674645e+00  -6.26256560e+00]\n",
      " [ -2.68504027e+01   9.06155587e+00]\n",
      " [ -1.35949128e+01  -4.31195514e+00]\n",
      " [ -5.86678498e+00   2.09321536e+01]\n",
      " [  6.47002132e+00  -1.18315638e+01]\n",
      " [  1.42415282e-01  -8.07794951e+00]\n",
      " [ -7.34680331e+00  -1.26877896e+01]\n",
      " [  9.45561143e-01  -1.69768384e+01]\n",
      " [ -1.74041027e+01  -1.78599888e+01]\n",
      " [ -8.16142429e+00   1.50528287e+01]\n",
      " [  2.80276396e+00  -3.90578853e+00]\n",
      " [ -2.15756831e+01   7.05569625e+00]\n",
      " [ -1.50104739e+01  -1.46809797e+01]\n",
      " [  1.12154516e+01   1.79927392e+00]\n",
      " [ -1.67202540e+01  -1.42531775e+01]\n",
      " [ -1.10889194e+01   2.14947988e+01]\n",
      " [ -1.39244153e+00   1.05303234e+01]\n",
      " [  1.12191312e+01  -9.34216340e+00]\n",
      " [ -9.74946132e+00  -1.72960252e+00]\n",
      " [  1.29692339e+01   3.97067013e+00]\n",
      " [  2.57949460e+00   8.81233307e+00]\n",
      " [ -1.24225776e+01   3.25806531e+00]\n",
      " [ -8.60499607e+00  -1.66860305e+01]\n",
      " [  1.70047831e+00  -6.83884814e+00]\n",
      " [  2.33059391e-01  -2.46115079e+00]\n",
      " [ -2.10784358e+01   6.67997471e-01]\n",
      " [  2.10120626e+00  -2.08974210e-01]\n",
      " [  1.85366761e+01   1.07623282e+01]\n",
      " [ -1.99087791e+01   1.01629901e+01]\n",
      " [  7.26671310e+00   7.67697321e+00]\n",
      " [  1.72150261e+01   3.75132287e-02]\n",
      " [ -1.77715841e+01   1.63749502e+01]\n",
      " [  1.71853432e+01  -9.47404339e+00]\n",
      " [  7.13393759e+00  -7.73958367e+00]\n",
      " [ -2.07907837e+01  -3.36781144e+00]\n",
      " [  1.65628834e+01   5.24579740e+00]\n",
      " [  2.83505795e+00   3.17026377e+00]\n",
      " [ -2.01210794e+01   7.23481618e+00]\n",
      " [  1.46538179e+01   1.04231934e+01]\n",
      " [  1.02888921e+01  -9.81471836e+00]\n",
      " [  5.60073762e+00  -2.04055241e+01]\n",
      " [ -4.93535917e+00  -1.31634424e+01]\n",
      " [ -1.43147591e+01   1.84829870e+00]\n",
      " [ -2.81798011e+00   6.86008084e-01]\n",
      " [ -5.27649013e-01  -1.65270688e+01]\n",
      " [ -1.61971376e+01   1.41720529e+01]\n",
      " [ -9.59485661e+00   1.60734994e+01]\n",
      " [  1.37778041e+01  -3.55652890e+00]\n",
      " [ -9.44007010e+00   1.09457791e+01]\n",
      " [ -1.00558304e+01   1.03003197e+01]\n",
      " [  5.63142347e-02   1.16667906e+01]\n",
      " [ -9.14470954e+00  -1.94185613e+01]\n",
      " [  8.57519497e+00  -7.53610964e+00]\n",
      " [  1.20996739e+01   1.18091288e+01]\n",
      " [ -2.09514728e+01   1.31121049e+01]\n",
      " [  9.70726380e-01  -1.02567464e+01]\n",
      " [  1.36765045e+01   1.94654459e+01]\n",
      " [ -1.53942004e+01  -7.26885415e+00]\n",
      " [  1.17504629e+01   1.87172536e+01]\n",
      " [ -7.10475691e+00   2.39790787e+01]\n",
      " [ -1.24014306e+01  -1.91746485e+01]\n",
      " [ -3.40330311e+00   5.66938490e+00]\n",
      " [ -2.52177221e+01   2.64733865e+00]\n",
      " [  2.91889662e+00  -3.52705138e+00]\n",
      " [  1.22565064e+01   9.51783499e+00]\n",
      " [ -6.66676359e+00  -2.12393987e+01]\n",
      " [ -1.62928331e+01   7.97239651e+00]\n",
      " [ -2.68036962e+00   5.86175899e-02]\n",
      " [  6.48654936e+00   1.53615794e+01]\n",
      " [  3.06780983e+00  -5.85541804e+00]\n",
      " [ -1.54028682e+01  -2.43494949e+00]\n",
      " [  8.35985709e+00   1.16493826e+01]\n",
      " [ -2.23855924e+00  -2.76333371e+00]\n",
      " [ -5.92615313e+00  -1.56345614e+01]\n",
      " [  1.56361429e+01   6.02886893e+00]\n",
      " [  1.74777605e+01  -7.31382434e+00]\n",
      " [ -1.68952831e+01   3.36693753e-01]\n",
      " [  2.47237938e+01   6.24670623e+00]\n",
      " [  4.99087901e+00  -8.03735440e+00]\n",
      " [ -6.66572548e+00   1.34978394e+00]\n",
      " [  2.35655464e+00  -1.58497667e+00]\n",
      " [  7.71955036e+00  -1.39281600e+01]\n",
      " [ -8.82743974e+00   8.45847645e+00]\n",
      " [ -2.74053449e+00  -9.02291009e+00]\n",
      " [  5.17787781e+00  -1.43934087e+01]\n",
      " [ -8.02298752e+00   2.24671080e+00]\n",
      " [ -1.93963539e+01   1.30513285e+01]\n",
      " [ -6.30094113e+00   9.07774816e+00]\n",
      " [ -3.87272699e+00  -1.19585702e+00]\n",
      " [ -1.38666299e+01   9.90293002e+00]\n",
      " [ -6.91562043e+00  -6.15573642e+00]\n",
      " [  6.81864293e+00  -1.81208760e+01]\n",
      " [ -1.26544506e+01  -1.28891876e+01]\n",
      " [ -1.09135126e+01   3.37690075e+00]\n",
      " [  9.46845506e+00  -4.38981690e+00]\n",
      " [ -1.76948204e+00   1.79879877e+01]\n",
      " [  2.22577913e+00  -8.47089917e+00]\n",
      " [ -7.94046772e+00  -8.52646332e+00]\n",
      " [ -2.08893023e+00  -4.68043632e+00]\n",
      " [ -2.65889439e+00   3.99749513e+00]\n",
      " [ -1.52639380e+01  -1.85948104e+01]\n",
      " [  1.92815769e+01  -4.38503437e-01]\n",
      " [ -4.84101351e+00  -1.17408409e+01]\n",
      " [ -2.11233141e+01  -8.58395107e+00]\n",
      " [  2.18596978e+00  -9.71394161e-01]\n",
      " [  1.38794512e+01   7.09244201e+00]\n",
      " [  1.84749554e+01   7.36627201e+00]\n",
      " [ -7.43106545e+00   1.77549477e+01]\n",
      " [  4.17603902e+00   1.82782340e+01]\n",
      " [  1.77894175e+01  -9.19526184e+00]\n",
      " [  2.42891515e-01  -3.91442089e+00]\n",
      " [  1.46801783e+01  -9.60448209e+00]\n",
      " [ -1.27582803e+01   2.09956964e+01]\n",
      " [ -7.10443585e+00   6.92876542e+00]\n",
      " [  1.24464313e+01   1.52373447e+01]\n",
      " [  9.65898135e+00   1.50246226e+00]\n",
      " [ -8.49174206e+00   6.97422615e+00]\n",
      " [ -2.35008434e+00  -1.44816460e+01]\n",
      " [  1.73394331e+01  -1.08762448e+01]\n",
      " [  2.20067391e+01   1.30396887e+00]\n",
      " [ -1.54622668e+01   5.31189570e+00]\n",
      " [ -1.36716908e+01   3.49937724e+00]\n",
      " [  1.39174930e+01  -6.81112432e+00]\n",
      " [ -4.69983867e+00  -9.09750887e+00]\n",
      " [ -3.31659009e+00  -1.89581152e+00]\n",
      " [ -2.18920911e+01  -1.05512694e+00]\n",
      " [  1.41986888e+01  -1.29148155e+00]\n",
      " [ -4.76548928e+00   1.75357823e+01]\n",
      " [  1.89617433e+01   2.94746549e+00]\n",
      " [ -2.93671953e+00  -1.63307339e+01]\n",
      " [ -3.59364850e+00  -1.01125285e+01]\n",
      " [  1.47717579e+01   1.19787380e+01]\n",
      " [  9.67718153e+00   1.32638600e+01]\n",
      " [  1.37732530e-01   1.59013563e+01]\n",
      " [  7.19790878e+00   1.12406486e+01]\n",
      " [  1.94523636e+01  -1.96851243e+00]\n",
      " [ -1.20190703e+01   6.40112550e+00]\n",
      " [ -1.74825212e+01  -1.29497153e+01]\n",
      " [  3.60326057e+00  -1.01398895e+01]\n",
      " [ -9.92370710e+00   5.65971844e+00]\n",
      " [  1.34092965e+01   1.42964482e+01]\n",
      " [ -1.14802607e+01  -2.00521229e+00]\n",
      " [ -1.46569156e+01  -2.72016618e+00]\n",
      " [ -2.39040673e+01   3.68167285e+00]\n",
      " [  5.88313608e+00  -2.16853962e+00]\n",
      " [  1.01574884e+01   1.12398211e+01]\n",
      " [ -1.77521019e+01  -9.78527117e+00]\n",
      " [ -1.74626629e+01  -9.03123006e+00]\n",
      " [  1.43092336e+01   2.62301583e-02]\n",
      " [ -1.96495932e+00   1.12121475e+00]\n",
      " [  1.94838865e+01   1.75192347e-01]\n",
      " [ -1.41130980e+01  -2.14352739e+01]\n",
      " [  8.07434460e+00  -8.18312911e+00]\n",
      " [ -3.43935205e+00   9.37321328e+00]\n",
      " [ -1.75073186e+01   6.31368835e-01]\n",
      " [ -1.85085846e+01  -6.37106315e+00]\n",
      " [  4.42245587e+00  -4.40254990e+00]\n",
      " [  8.36777702e+00  -2.46802285e+00]\n",
      " [ -1.59131169e+01   4.97153666e+00]\n",
      " [  2.83650375e-01  -1.62990115e+01]\n",
      " [  2.18994977e+01  -4.60700787e+00]\n",
      " [  3.69492488e+00  -1.30144582e+01]\n",
      " [ -3.26920552e-01   2.18134971e+01]\n",
      " [ -4.42387857e+00   1.69110804e+00]\n",
      " [ -1.07331110e+01  -1.55100868e+01]\n",
      " [ -1.22294190e+01   1.73495473e+01]\n",
      " [  2.14045009e+01  -1.08011928e+01]\n",
      " [  1.64542247e+01  -2.47414053e+00]\n",
      " [ -1.82335632e+01   7.46887711e+00]\n",
      " [  4.82443075e+00   7.67993425e-02]\n",
      " [ -1.31865466e+01   7.99252550e-01]\n",
      " [  2.20192979e+00  -1.89386252e+01]\n",
      " [ -9.98723933e+00   1.14455804e+00]\n",
      " [ -9.64246179e+00  -1.42106902e+01]\n",
      " [  6.26428728e-01   5.21747854e-01]\n",
      " [ -1.34595273e+01  -1.60003255e+01]\n",
      " [ -5.03918066e+00   7.95314501e+00]\n",
      " [ -2.30448660e+00   2.18184972e+01]\n",
      " [ -1.22423546e+01   6.08227822e-01]\n",
      " [ -3.21362407e+00  -1.68062695e+00]\n",
      " [  1.44083975e+01   8.91885822e+00]\n",
      " [  2.16098498e+01  -6.08858459e+00]\n",
      " [ -7.28548568e+00   1.73731563e+01]\n",
      " [ -3.45262135e-01   3.17271926e+00]\n",
      " [  1.82006031e+01   6.61467510e+00]]\n"
     ]
    }
   ],
   "source": [
    "# Step 6: Visualize the embeddings.\n",
    "\n",
    "def plot_with_labels(low_dim_embs, labels, filename='tsne_thai.png'):\n",
    "  assert low_dim_embs.shape[0] >= len(labels), \"More labels than embeddings\"\n",
    "  plt.figure(figsize=(18, 18))  # in inches\n",
    "  for i, label in enumerate(labels):\n",
    "    x, y = low_dim_embs[i, :]\n",
    "    plt.scatter(x, y)\n",
    "    plt.annotate(label,\n",
    "                 xy=(x, y),\n",
    "                 xytext=(5, 2),\n",
    "                 textcoords='offset points',\n",
    "                 ha='right',\n",
    "                 va='bottom',\n",
    "                 fontname='Garuda',fontsize='20')\n",
    "\n",
    "  plt.savefig(filename)\n",
    "\n",
    "try:\n",
    "  from sklearn.manifold import TSNE\n",
    "  import matplotlib\n",
    "  from matplotlib import rcParams\n",
    "  matplotlib.rc('font', family='Garuda')\n",
    "  import matplotlib.pyplot as plt\n",
    "  rcParams['font.family'] = 'sans-serif'\n",
    "  rcParams['font.sans-serif'] = ['Garuda']\n",
    "\n",
    "  tsne = TSNE(perplexity=30, n_components=2, init='pca', n_iter=5000)\n",
    "  plot_only = 500\n",
    "  low_dim_embs = tsne.fit_transform(final_embeddings[:plot_only, :])\n",
    "  labels = [reverse_dictionary[i] for i in xrange(plot_only)]\n",
    "  print(labels);\n",
    "  print(low_dim_embs);\n",
    "  plot_with_labels(low_dim_embs, labels)\n",
    "\n",
    "except ImportError:\n",
    "  print(\"Please install sklearn, matplotlib, and scipy to visualize embeddings.\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
